若要在 macOS 執行 Jenkins,由於 Jenkins 是由 Java 開發,當然可以直接在 macOS 安裝原生的 Jenkins,若是測試與學習的角度,更好的選擇就是安裝 Docker 版的 Jenkins,若要移除 Jenkins,直接刪除 Docker 的 container 與 image 即可,不會污染到 macOS 環境。
Version
macOS High Sierra 10.13.3
Docker for Mac 17.20.0-ce-mac49 (21995)
Jenkins 2.89.4
下載 Jenkins Image
$ docker pull jenkins/jenkins:lts
使用 docker pull 下載 image 到本機。
lts : 表示 Long time support 版本,通常較為穩定
建立 Container
$ docker run --name MyJenkins -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts
使用 docker run 由 image 建立 container 並執行之。
—name : 替 container 取一個人能夠識別的名字 MyJenkins (若省略,Docker 將隨機命名,將來不易維護)
-p : Docker 外部與 Jenkins 內部所對應的 port,其中左邊為外部 Docker 的 port,右邊為 Jenkins 內部的 port
-v : 建立 JENKINS_HOME 環境變數,其目錄在 /var/jenkins_home ,為 Jenkins 的工作目錄
docker run 除了建立 container 外,還會順便執行 container。
Unlock Jenkins
Jenkins 一旦啟動後,就必須在 browser 設定 Jenkins,安裝 plugin。
一開始會要求輸入 Administrator password,並提示預設密碼已經寫在 /var/jenkins_home/secrets/initialAdminPassword 。
由於我們現在是使用 Docker,因此該目錄是在 container 內,而不是在 host,因此要進入 container 內讀出 initialAdminPassword 。
$ exec -it MyJenkins bash
jenkins@54ceef740712:/$ cat /var/jenkins_home/secrets/initialAdminPassword
先進入 Jenkins 的 terminal,再將密碼 cat 出來。
1、輸入 exec it MyJenkins bash 進入 Jenkins terminal
2、輸入 cat /var/jenkins_home/secrets/initialAdminPassword 顯示密碼
Customize Jenkins
選擇 Install suggested plugins 安裝預設 plugin。
Getting Started
需要一些時間安裝 plugin。
Create Admin User
建立管理者密碼,按 Save and Finish 繼續。
Start Using Jenkins
按 Start using Jenkins 結束 Jenkins 設定。
Welcome to Jenkins
熟悉的 Jenkins 設定介面已經呈現,Jenkins 到此算安裝完成。
將 Container 儲存成 Image
目前為止 Jenkins 已經設定好,也安裝了預設 plugin,所以在 container 內的 /var/jenkins_home 已經有不少資料,我們將以目前 container 儲存成 image,將來若 Jenkins container 被我們玩壞了,可以直接再以此 image 建立全新 container,或者將新的 image 匯出成 tar ,可將此 tar 加以備份,或者將 tar 檔交給其他人匯入成 image。
$ docker commit MyJenkins oomusou/jenkins
使用 docker commit 將 container 儲存成自己的 image。
1、輸入 docker commit MyJenkins oomusou/jenkins 將 MyJenkins container 儲存成 oomusou/jenkins image
2、輸入 docker images 可以看到 oomusou/jenkins 已經新增
將 Image 匯出成 Tar
$ docker save -o MyJenkins.tar oomusou/jenkins
使用 docker save 將 image 匯出成 tar 檔。
-o : 指定匯出 tar 檔的檔名
1、輸入 docker save -o MyJenkins.tar oomusou/jenkins 將 oomusou/jenkins image 匯出成 MyJenkins.tar
2、硬碟已經產生 MyJenkins.tar
從 Tar 匯入成 Image
$ docker load -i MyJenkins.tar
使用 docker load 將 tar 檔匯入成 image。
-i : 指定匯入 tar 檔的檔名
輸入 docker load -i MyJenkins.tar 將 MyJenkins.tar 匯入成 oomusou/jenkins image
建立新的 Container
$ docker run --name MyJenkins-p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home oomusou/jenkins
使用 docker run 由 image 建立 container 並執行之。
Conclusion
· 若使用 Jenkins Docker,則整個過程分成 Docker 操作與 Jenkins 設定部分
· 可將最後設定好的 Jenkins 儲存成 image 與 tar ,可將 tar 加以備份或傳給其他人
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。