寫這篇文章的靈感來源於最近公司的 jenkins 部署總是失敗,各類緣由。在項目很是趕的狀況下,我天天還要抽半天時間去排查 jenkins 上的問題。因此決定在咱們前端服務器上搭建個 jenkins 給測試部署。並部署到前端服務器上。文章是邊操做邊寫出來的,踩遍了坑。不知道你們會不會也遇到這些問題。反正我都把解決步驟寫在裏面了。html
本文主要內容是介紹 jenkins 的搭建與使用。至因而安裝在服務器上仍是本文經過 docker 安裝 jenkins 不是很重要,默認讀者會使用 docker。若是不是很瞭解docker
可看個人docker 從入門到實戰博客,本文章同步發表於個人博客前端
docker pull docker.io/jenkins/jenkins:latest
vue
安裝成功後使用docker images
查看鏡像git
github docker images REPOSITORY TAG IMAGE ID CREATED SIZE jenkins/jenkins latest 59f8784e08ee 2 days ago 619MB
在啓動 Jenkins 前,須要先建立一個 Jenkins 的配置目錄,而且掛載到 docker 裏的 Jenkins 目錄下github
新建一個文件夾如個人/Users/zhouatie/Desktop/github/front-end/practise-jenkins
web
並給該文件夾受權sudo chown -R 1000 /Users/zhouatie/Desktop/github/front-end/practise-jenkins
docker
這裏有個很神奇的點就是網上都說要受權,因此我受權了,可是仍是提示
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions
。後來我新建了個文件夾不作受權處理就能夠了。可查閱
stackoverflow 這裏面一位朋友就是遇到相同的問題 受權了也沒用。
執行如下命令構建容器shell
docker run -itd -p 8080:8080 -p 50000:50000 --name jenkins -v /Users/zhouatie/Desktop/github/front-end/practise-jenkins:/var/jenkins_home docker.io/jenkins/jenkins:latest
執行docker ps
查看後臺啓動的容器狀況json
➜ front-end git:(master) ✗ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3385ad0e42fe jenkins/jenkins:latest "/sbin/tini -- /usr/…" 5 minutes ago Up 5 minutes 0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp jenkins
能夠看到 jenkins 容器已經啓動成功了。這個時候訪問下頁面吧。瀏覽器輸入 localhost:8080
瀏覽器
能夠看到以下界面
這個時候咱們就能夠到剛纔管理數據卷的文件夾裏找了(我本地是/Users/zhouatie/Desktop/github/front-end/practise-jenkins/secrets/initialAdminPassword
),cat
下這個文件能夠看到輸出28023d3751214bd6aadc0dd83c168325
,把這個密碼複製到管理員密碼輸入框中並點擊繼續。
loading 轉了半天,有種不詳的預感。結果不出意外顯示 jenkins 離線。因此我又開始上網搜新版本 jenkins 安裝時顯示離線問題
解決步驟
http://localhost:8080/pluginManager/advanced
劃到最下面能夠看到
http://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/current/update-center.json
這個代理服務器再刷新下http://localhost:8080
頁面以下
點擊安裝推薦的插件
結果不出意外以下圖
而後我又開始google
了。找到了這個安裝 jenkins 時出現 No such plugin: cloudbees-folder 的解決辦法
結果按照前幾個步驟失敗,做者建議重啓,好吧,重啓就重啓,執行下 docker restart jenkins
終於又成功進入下載頁了。
安裝真的超級慢,心急如焚,不知道是否是 docker 的緣由。由於文章是直接邊操做邊寫的。在想要不要直接跨過這個安裝界面,直接打開本身跑在前端服務器上的 jenkins 了開始介紹了
還沒等他提示徹底失敗,這個時候我就又開始google
了。實在沒轍了,這的太難了。因此我重啓了個jenkins
容器後,選擇自選插件。而後什麼也不選,進了頁面後,能夠在以下截圖地方下載,我是將上面推薦的所有勾選後進行下載,結果還很快。
credentials
須要選擇有該倉庫權限的帳號,能夠手動試下git
上的webhook
,就能夠觸發jenkins
部署。具體可查閱google
shell
腳本,很是好理解。