Jenkins+Docker實(shí)現(xiàn)自動(dòng)化部署
環(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. 設(shè)置 yum 源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
5. 安裝 Docker
yum install docker-ce #由于repo中默認(rèn)只開啟stable倉庫,故這里安裝的是最新穩(wěn)定版17.12.0 yum install <自己想安裝的版本> # 例如:sudo yum install docker-ce-17.12.0.ce
6. 啟動(dòng)并設(shè)置開機(jī)啟動(dòng)
systemctl start docker systemctl enable docker
7. 驗(yàn)證安裝是否成功
docker version
二、安裝 Jenkins
Jenkins 中文官網(wǎng):https://www.jenkins.io/zh/
1. 安裝 Jenkins
注意檢查 8080 是否已經(jīng)占用,如果占用請(qǐng)修改端口。
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所在服務(wù)IP}:端口號(hào)
此處會(huì)有幾分鐘的等待時(shí)間。
2. 初始化 Jenkins
更多詳情見官網(wǎng)教程:https://www.jenkins.io/zh/doc
(1). 解鎖 Jenkins
# 進(jìn)入Jenkins容器
docker exec -it {Jenkins容器名} bash
# 例如 docker exec -it jenkins bash
# 查看密碼
cat /var/lib/jenkins/secrets/initialAdminPassword
# 復(fù)制密碼到輸入框里面

(2).安裝插件
選擇第一項(xiàng):安裝推薦的插件。

(3).創(chuàng)建管理員用戶
填寫你的管理員賬戶信息,請(qǐng)記牢。
三、系統(tǒng)配置
1. 安裝需要插件
進(jìn)入【首頁】–【系統(tǒng)管理】–【插件管理】–【可選插件】。搜索以下需要安裝的插件,點(diǎn)擊安裝即可。

安裝 Maven Integration
安裝 Publish Over SSH(如果不需要遠(yuǎn)程推送,不用安裝)
如果使用 Gitee 碼云,安裝插件Gitee(自帶 Git 不用單獨(dú)安裝)
2. 配置 Maven
進(jìn)入【首頁】–【系統(tǒng)管理】–【全局配置】,拉到頁面最下方 maven–maven 安裝。

四、創(chuàng)建任務(wù)
1. 新建任務(wù)
點(diǎn)擊【新建任務(wù)】,輸入任務(wù)名稱,點(diǎn)擊構(gòu)建一個(gè)自由風(fēng)格的軟件項(xiàng)目。

2. 源碼管理
點(diǎn)擊【源碼管理】–【Git】,輸入倉庫地址,添加憑證,選擇好憑證即可。


3. 構(gòu)建觸發(fā)器
點(diǎn)擊【構(gòu)建觸發(fā)器】–【構(gòu)建】–【增加構(gòu)建步驟】–【調(diào)用頂層 Maven 目標(biāo)】–【「填寫配置」】–【保存】。

此處命令只 install,看是否能生成 jar 包。
clean install -Dmaven.test.skip=true

隨后點(diǎn)擊【保存】按鈕即可。
五、測(cè)試
測(cè)試是否能正常打包。
1. 構(gòu)建
點(diǎn)擊構(gòu)建按鈕。

2. 查看日志
點(diǎn)擊正在構(gòu)建的任務(wù),或者點(diǎn)擊任務(wù)名稱進(jìn)入詳情頁面,查看控制臺(tái)輸出??词欠衲艹晒Υ虺?jar 包。
該處日志第一次可能下載依賴 jar 包失敗,再次點(diǎn)擊構(gòu)建即可成功。


3. 查看項(xiàng)目位置
cd /var/jenkins_home/workspace
六、運(yùn)行項(xiàng)目
因?yàn)轫?xiàng)目和 Jenkins 在同一臺(tái)服務(wù)器,所以我們用 Shell 腳本運(yùn)行項(xiàng)目,原理既是通過 Dockerfile 打包鏡像,然后 docker 運(yùn)行即可。
1. Dockerfile
在 Spring Boot 項(xiàng)目根目錄新建一個(gè)名為 Dockerfile 的文件,注意沒有后綴名。
其內(nèi)容如下(大致就是使用 JDK 8,把 jar 包添加到 docker 然后運(yùn)行 prd 配置文件。詳細(xì)可以查看其他教程):
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 任務(wù)配置

配置如下:

“-t” 指定新鏡像名,“.” 表示 Dockfile 在當(dāng)前路徑。
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 是為了方便看日志,真實(shí)環(huán)境不要用,因?yàn)闀?huì)一直等待日志,構(gòu)建任務(wù)會(huì)失??;
- 加 “|| true” 是如果命令執(zhí)行失敗也會(huì)繼續(xù)實(shí)行,為了防止第一次沒有該鏡像報(bào)錯(cuò);
- 保存:點(diǎn)擊保存即可;
- 構(gòu)建:查看 Jenkins 控制臺(tái)輸出,輸出如下,證明成功;
3. 驗(yàn)證是否部署成功
docker ps # 查看是否有自己的容器 docker logs # 自己的容器名,查看日志是否正確 # 打開瀏覽器訪問項(xiàng)目
到此這篇關(guān)于Jenkins+Docker實(shí)現(xiàn)自動(dòng)化部署的文章就介紹到這了,更多相關(guān)Jenkins Docker自動(dòng)化部署內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Docker?+?jenkins項(xiàng)目打包鏡像部署詳細(xì)步驟(親測(cè)有效)
- Docker安裝Jenkins并部署Maven項(xiàng)目詳細(xì)教程
- Jenkins整合Docker自動(dòng)化部署的實(shí)現(xiàn)
- Jenkins+Docker?一鍵自動(dòng)化部署?SpringBoot?項(xiàng)目的詳細(xì)步驟
- 基于Docker與Jenkins實(shí)現(xiàn)自動(dòng)化部署的原理解析
- Docker搭建Jenkins并自動(dòng)化打包部署項(xiàng)目的步驟
- Docker+Jenkins實(shí)現(xiàn)一鍵自動(dòng)化部署項(xiàng)目的圖文教學(xué)
相關(guān)文章
docker安裝nginx實(shí)現(xiàn)對(duì)springboot項(xiàng)目的負(fù)載均衡的操作方法
這篇文章主要介紹了docker安裝nginx實(shí)現(xiàn)對(duì)springboot項(xiàng)目的負(fù)載均衡的操作方法,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-06-06
DocKer 復(fù)制本地鏡像的步驟實(shí)現(xiàn)
本文主要介紹了DocKer 復(fù)制本地鏡像的步驟實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-12-12
vscode進(jìn)入服務(wù)器docker容器的方法
這篇文章主要介紹了vscode進(jìn)入服務(wù)器docker容器的方法,首先要確保已經(jīng)運(yùn)行docker容器,已經(jīng)用vscode鏈接服務(wù)器,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-04-04
Docker查看及修改Redis容器密碼的實(shí)用指南
在使用 Docker 部署 Redis 容器時(shí),有時(shí)我們需要查看或修改 Redis 的密碼,本文將詳細(xì)介紹如何在 Docker 中查看和修改 Redis 容器的密碼,幫助你更好地管理和維護(hù)你的 Redis 實(shí)例,需要的朋友可以參考下2024-07-07
Docker build創(chuàng)建鏡像命令示例實(shí)踐
本文講解Dockerfile的核心概念、基礎(chǔ)指令、構(gòu)建流程及優(yōu)化技巧,涵蓋鏡像層結(jié)構(gòu)、構(gòu)建上下文、常用命令參數(shù),強(qiáng)調(diào)多階段構(gòu)建、輕量鏡像等最佳實(shí)踐,感興趣的朋友跟隨小編一起看看吧2025-08-08
docker容器的標(biāo)準(zhǔn)輸入輸出全過程
文章主要介紹了Docker容器的參數(shù)設(shè)置,包括AttachStdin、AttachStdout、AttachStderr、OpenStdin、StdinOnce和Tty等字段的含義和作用,并通過命令排列組合和輸入輸出對(duì)應(yīng)關(guān)系詳細(xì)說明了這些參數(shù)的使用場景2026-02-02
Docker自定義JDK鏡像并拉取至阿里云鏡像倉庫超詳細(xì)攻略
Docker倉庫是集中存放鏡像的地方,分為公共倉庫和私有倉庫,這篇文章主要給大家介紹了關(guān)于Docker自定義JDK鏡像并拉取至阿里云鏡像倉庫的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-08-08
Docker部署nginx并修改配置文件的實(shí)現(xiàn)方法
這篇文章主要介紹了Docker部署nginx并修改配置文件的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
解決docker啟動(dòng)失敗Failed?to?start?containerd?container?runtim
這篇文章主要介紹了解決docker啟動(dòng)失敗Failed?to?start?containerd?container?runtime問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05

