用 Docker 安裝 CI/CD 工具 Jenkins

Jo-Yu Liao
6 min readSep 18, 2019

--

source:https://hackernoon.com/continuous-delivery-of-react-app-with-jenkins-and-docker-8a1ae1511b86

Jenkins:是一款主要由川口耕介開發、用 Java 編寫的開源的 CI/CD 工具,它執行在 Servlet 容器(如:Apache Tomcat)中,支援 SCM (Source Code Management,原始碼管理)工具,如 Git。

所謂 CI(Continuous Integration,持續性整合)是指針對軟體系統的每個變動,能持續且自動地進行驗證。任何人對程式倉庫改動就會觸發 CI 服務器構建項目、自動運行測試驗證程式。當驗證完成後可再進行 CD(Continuous Delivery / Continuous Deployment,整合自動化發佈或部署)自動部署服務。

Jenkins 是 On-Premise 的 CI/CD 工具,需要用戶自己搭建服務,如果不想要自己搭建,可以考慮用 Hosted 的 CI/CD 工具如 Travis CI,更多比較可以參考:谁才是世界上最好的 CI/CD 工具?

Jenkins 除了透過 SCM 工具觸發、也可以透過類似 cron 的機制排程或特定 URL 請求。

用 Docker 安裝 Jenkins

官方說明文檔:https://jenkins.io/zh/doc/tutorials/build-a-python-app-with-pyinstaller/

操作系統:mac/linux

執行下列指令用 docker 安裝啟動 jenkins

docker run \
--rm \
-u root \
-p 8080:8080 \
-v jenkins-data:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
-v "$HOME":/home \
jenkinsci/blueocean

指令說明:

jenkins-data:/var/jenkins_home \

將 jenkins-data 映射到 Docker volume(/var/jenkins_home),並命名為 jenkins-data(volume:用於保存 Docker container 內的資料,當 container 被刪掉時,資料仍保存在指定的資料夾。)

執行完後可以看到 Jenkins 已啟動。

起動 Jenkins 服務

訪問 http://localhost:8080/ ,可以看到 Jenkins 已啟動,並顯示需要輸入密碼解鎖。

Jenkins 解鎖畫面

密碼如果在終端沒有看到,可以進入 Docker container,查看密碼,再將密碼輸入網頁。

指令:

docker container ls
docker exec -it <Docker Container ID> bash
cat /var/jenkins_home/secrets/initialAdminPassword
查看 Jenkins 密碼

選擇安裝 suggested plugins

安裝推薦的插件

安裝中…

安裝中

創建帳號後選擇 Save and Finish

保存並結束

可以成功登入管理介面了!

Jenkins 管理介面

安裝完後就可以用 Jenkins 構建流水線項目囉!更多內容可參考官方文檔或是:透過 GitHub Webhook 讓你 push code 到 Github 就會自動觸發本地 Jenkins Pipeline

--

--