Jenkins+Docker實現自動化部署
環(huán)境:CentOS7 + Git (Gitee)
一、安裝 Docker
安裝社區(qū)版本 Docker CE
1. 確保 yum 包更新到最新
yum update
2. 卸載舊版本(如果安裝過舊版本的話)
yum remove docker docker-common docker-selinux docker-engine
3. 安裝需要的軟件包
yum install -y yum-utils device-mapper-persistent-data lvm2
4. 設置 yum 源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
5. 安裝 Docker
yum install docker-ce #由于repo中默認只開啟stable倉庫,故這里安裝的是最新穩(wěn)定版17.12.0 yum install <自己想安裝的版本> # 例如:sudo yum install docker-ce-17.12.0.ce
6. 啟動并設置開機啟動
systemctl start docker systemctl enable docker
7. 驗證安裝是否成功
docker version
二、安裝 Jenkins
Jenkins 中文官網:https://www.jenkins.io/zh/
1. 安裝 Jenkins
注意檢查 8080 是否已經占用,如果占用請修改端口。
docker run --name jenkins -u root --rm -d -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock jenkinsci/blueocean
安裝完成后訪問地址:
http://{部署Jenkins所在服務IP}:端口號
此處會有幾分鐘的等待時間。
2. 初始化 Jenkins
更多詳情見官網教程:https://www.jenkins.io/zh/doc
(1). 解鎖 Jenkins
# 進入Jenkins容器 docker exec -it {Jenkins容器名} bash # 例如 docker exec -it jenkins bash # 查看密碼 cat /var/lib/jenkins/secrets/initialAdminPassword # 復制密碼到輸入框里面
(2).安裝插件
選擇第一項:安裝推薦的插件。
(3).創(chuàng)建管理員用戶
填寫你的管理員賬戶信息,請記牢。
三、系統(tǒng)配置
1. 安裝需要插件
進入【首頁】–【系統(tǒng)管理】–【插件管理】–【可選插件】。搜索以下需要安裝的插件,點擊安裝即可。
安裝 Maven Integration
安裝 Publish Over SSH(如果不需要遠程推送,不用安裝)
如果使用 Gitee 碼云,安裝插件Gitee(自帶 Git 不用單獨安裝)
2. 配置 Maven
進入【首頁】–【系統(tǒng)管理】–【全局配置】,拉到頁面最下方 maven–maven 安裝。
四、創(chuàng)建任務
1. 新建任務
點擊【新建任務】,輸入任務名稱,點擊構建一個自由風格的軟件項目。
2. 源碼管理
點擊【源碼管理】–【Git】,輸入倉庫地址,添加憑證,選擇好憑證即可。
3. 構建觸發(fā)器
點擊【構建觸發(fā)器】–【構建】–【增加構建步驟】–【調用頂層 Maven 目標】–【「填寫配置」】–【保存】。
此處命令只 install,看是否能生成 jar 包。
clean install -Dmaven.test.skip=true
隨后點擊【保存】按鈕即可。
五、測試
測試是否能正常打包。
1. 構建
點擊構建按鈕。
2. 查看日志
點擊正在構建的任務,或者點擊任務名稱進入詳情頁面,查看控制臺輸出??词欠衲艹晒Υ虺?jar 包。
該處日志第一次可能下載依賴 jar 包失敗,再次點擊構建即可成功。
3. 查看項目位置
cd /var/jenkins_home/workspace
六、運行項目
因為項目和 Jenkins 在同一臺服務器,所以我們用 Shell 腳本運行項目,原理既是通過 Dockerfile 打包鏡像,然后 docker 運行即可。
1. Dockerfile
在 Spring Boot 項目根目錄新建一個名為 Dockerfile 的文件,注意沒有后綴名。
其內容如下(大致就是使用 JDK 8,把 jar 包添加到 docker 然后運行 prd 配置文件。詳細可以查看其他教程):
FROM jdk:8 VOLUME /tmp ADD target/zx-order-0.0.1-SNAPSHOT.jar app.jar EXPOSE 8888ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar","--spring.profiles.active=prd"]
2. 修改 Jenkins 任務配置
配置如下:
“-t” 指定新鏡像名,“.” 表示 Dockfile 在當前路徑。
cd /var/jenkins_home/workspace/zx-order-api docker stop zx-order || true docker rm zx-order || true docker rmi zx-order || true docker build -t zx-order . docker run -d -p 8888:8888 --name zx-order zx-order:latest
注意:
- 上圖用了 docker logs -f 是為了方便看日志,真實環(huán)境不要用,因為會一直等待日志,構建任務會失??;
- 加 “|| true” 是如果命令執(zhí)行失敗也會繼續(xù)實行,為了防止第一次沒有該鏡像報錯;
- 保存:點擊保存即可;
- 構建:查看 Jenkins 控制臺輸出,輸出如下,證明成功;
3. 驗證是否部署成功
docker ps # 查看是否有自己的容器 docker logs # 自己的容器名,查看日志是否正確 # 打開瀏覽器訪問項目
到此這篇關于Jenkins+Docker實現自動化部署的文章就介紹到這了,更多相關Jenkins Docker自動化部署內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
CentOS修改docker鏡像存儲位置并進行數據遷移的操作方法
本文詳細介紹了在CentOS上修改Docker鏡像存儲位置并進行數據遷移的步驟,包括停止Docker服務、創(chuàng)建新的存儲目錄、復制現有數據、修改Docker配置、重啟Docker服務、驗證配置、清理舊數據(可選)以及檢查容器和鏡像,感興趣的朋友一起看看吧2025-01-01