用 Docker 安裝 CI/CD 工具 Jenkins
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 已啟動。
訪問 http://localhost:8080/ ,可以看到 Jenkins 已啟動,並顯示需要輸入密碼解鎖。
密碼如果在終端沒有看到,可以進入 Docker container,查看密碼,再將密碼輸入網頁。
指令:
docker container ls
docker exec -it <Docker Container ID> bash
cat /var/jenkins_home/secrets/initialAdminPassword
選擇安裝 suggested plugins
安裝中…
創建帳號後選擇 Save and Finish
可以成功登入管理介面了!
安裝完後就可以用 Jenkins 構建流水線項目囉!更多內容可參考官方文檔或是:透過 GitHub Webhook 讓你 push code 到 Github 就會自動觸發本地 Jenkins Pipeline。
參考資料: