1、相關概念
(1)概念
持續集成(新加進來的模塊與已存在的模塊集成在一起,也就是每完成代碼的更新就將代碼集成到主幹)
持續部署(開發過程中有新的代碼加進來,代碼集成後可以自動部署到生產環境)
持續交付(代碼集成後,經過測試環境、類生產環境後最終部署(手動)到真實環境並將結果返回給開發人員)
(2)好處
可以及早地發現問題,通過持續集成能夠提前暴漏出問題而不是在發佈項目的時候才發現,同時能夠防止分支偏離主幹
把構建環節(編譯、測試、打包、部署)從手動轉化爲自動
(3)流程
提交:開發人員將代碼上傳到代碼倉庫
測試:代碼倉庫對代碼的提交配置了鉤子,只要提交了代碼後合併進主幹就會進行自動化測試。通過測試後進行構建(將源碼轉換爲可運行的代碼)
部署:將代碼打包發送到服務器
2、Jenkins的安裝
(1)在Docker中安裝Jenkins
docker pull jenkins/jenkins:lts
(2)在服務器創建Jenkins的目錄
[root@zhai jenkins]# pwd
/home1/apps/jenkins
(3)啓動Jenkins容器
[root@zhai jenkins]# docker run -d -p 10240:8080 -p 10241:50000 -v /home1/apps/jenkins:/var/jenkins_home --name jenkins e5599f396096 31a8d1610321b2142f5c9a80c25267d93b7d2603293f62580f73b2e529af6dfb [root@zhai jenkins]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8f2752526134 nginx "/docker-entrypoint.…" 4 days ago Up 2 hours 0.0.0.0:80-90->80-90/tcp, 0.0.0.0:443->443/tcp nginx
失敗的原因是需要修改jenkins家目錄的權限:
[root@zhai jenkins]# chmod 777 /home1/apps/jenkins
修改目錄權限後再次啓動:
[root@zhai jenkins]# docker run -d -p 10240:8080 -p 10241:50000 -v /home1/apps/jenkins:/var/jenkins_home --name jenkins e5599f396096 5694f28a34f5b5af4d9e2d3d56b390cc79de9d27a3bc8579e74d91e73fcc30e2 [root@zhai jenkins]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5694f28a34f5 e5599f396096 "/sbin/tini -- /usr/…" 4 seconds ago Up 3 seconds 0.0.0.0:10240->8080/tcp, 0.0.0.0:10241->50000/tcp jenkins 8f2752526134 nginx
(4)登錄
(5)選擇安裝推薦的插件
(6)下載完成後創建賬戶
3、Jenkins的配置
(1)Jenkins配置Maven
全局工具配置:
添加JDK:
(2)配置Maven
(3)配置SSH
下載:安裝SSH插件(用於Jenkins連接服務器)
進入憑據配置需要連接的服務器:
進入系統配置:
保存連接: