手把手 docker 从零搭建 jenkins 服务器
??點擊上方?好好學java?,選擇?星標?公眾號
重磅資訊、干貨,第一時間送達 今日推薦:牛人 20000 字的 Spring Cloud 總結,太硬核了~個人原創+1博客:點擊前往,查看更多 來源:https://segmentfault.com/a/1190000022236729 作者:我是南方大漢前言
寫這篇文章的靈感來源于最近公司的 jenkins 部署老是失敗,各種原因。在項目非常趕的情況下,我每天還要抽半天時間去排查 jenkins 上的問題。所以決定在我們前端服務器上搭建個 jenkins 給測試部署。并部署到前端服務器上。文章是邊操作邊寫出來的,踩遍了坑。不知道大家會不會也遇到這些問題。反正我都把解決步驟寫在里面了。
本文主要內容是介紹 jenkins 的搭建與使用。至于是安裝在服務器上還是本文通過 docker 安裝 jenkins 不是很重要,默認讀者會使用 docker。如果不是很了解docker可看我的[docker 從入門到實戰]:https://zhouatie.github.io/blog/2019/07/07/docker%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E5%AE%9E%E6%88%98-%E5%9F%BA%E7%A1%80%E7%AF%87/博客。
安裝 jenkins
docker pull docker.io/jenkins/jenkins:latest
安裝成功后使用docker images查看鏡像
github docker images REPOSITORY TAG IMAGE ID CREATED SIZE jenkins/jenkins latest 59f8784e08ee 2 days ago 619MB在啟動 Jenkins 前,需要先創建一個 Jenkins 的配置目錄,并且掛載到 docker 里的 Jenkins 目錄下
新建一個文件夾如我的/Users/zhouatie/Desktop/github/front-end/practise-jenkins
并給該文件夾授權sudo chown -R 1000 /Users/zhouatie/Desktop/github/front-end/practise-jenkins
這里有個很神奇的點就是網上都說要授權,所以我授權了,但是還是提示Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions。后來我新建了個文件夾不做授權處理就可以了。可查閱stackoverflow 這里面一位朋友就是遇到相同的問題 授權了也沒用。
執行以下命令構建容器
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查看后臺啟動的容器情況
? 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
劃到最下面可以看到
G8zfbR.md.jpg將截圖中的地址替換為http://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/current/update-center.json這個代理服務器
再刷新下http://localhost:8080頁面如下
G8zvVI.jpg點擊安裝推薦的插件
結果不出意外如下圖
GGpocD.jpg然后我又開始google了。找到了這個安裝 jenkins 時出現 No such plugin: cloudbees-folder 的解決辦法
結果按照前幾個步驟失敗,作者建議重啟,好吧,重啟就重啟,執行下 docker restart jenkins
終于又成功進入下載頁了。
安裝真的超級慢,心急如焚,不知道是不是 docker 的原因。因為文章是直接邊操作邊寫的。在想要不要直接跨過這個安裝界面,直接打開自己跑在前端服務器上的 jenkins 了開始介紹了
還沒等他提示完全失敗,這個時候我就又開始google了。實在沒轍了,這的太難了。所以我重啟了個jenkins容器后,選擇自選插件。然后什么也不選,進了頁面后,可以在如下截圖地方下載,我是將上面推薦的全部勾選后進行下載,結果還很快。
GGCv6S.jpg安裝完插件后重啟下,可以看到界面如下
GGPpwj.jpg構建
點擊右上角的新建任務
選擇第一個自由風格模式
確點后進入如下頁面,并點擊配置
因為部分插件裝失敗了,我就以在裝成功的 jenkins 配置界面截圖為例
參數化構建:這里主要提下參數化構建,這里對應的值都可以在下面【構建】執行 shell 中獲取到部署的時候用戶手動選擇或者填入的參數。
源碼管理:主要是讓 jenkins 從你的 git 倉庫中拉代碼,credentials需要選擇有該倉庫權限的賬號,可以手動試下
構建觸發器:意思就是觸發條件,比如git上的webhook,就可以觸發jenkins部署。具體可查閱google
構建:這個是重點,這里可以執行你的腳本,比如你是一個 vue 項目,可以根據上面配置的參數化配置,獲取是否需要安裝依賴等。可看我圖中shell腳本,非常好理解。
總結
以上是生活随笔為你收集整理的手把手 docker 从零搭建 jenkins 服务器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 牛人 20000 字的 Spring C
- 下一篇: Spring Boot 配置线程池使用多