本文章實現(xiàn)最簡單全面的 Jenkins + Docker + Spring Boot 一鍵自動部署項目。步驟齊全,少走坑路。
環(huán)境:CentOS7 + Git (Gitee)
實現(xiàn)步驟:在 Docker 安裝 Jenkins,配置 Jenkins 基本信息,利用 Dockerfile 和 Shell 腳本實現(xiàn)項目自動拉取打包并運行。
1安裝 Docker
安裝社區(qū)版本 Docker CE
確保 yum 包更新到最新
yum update
卸載舊版本(如果安裝過舊版本的話)
yum remove docker docker-common docker-selinux docker-engine
安裝需要的軟件包
yum install -y yum-utils device-mapper-persistent-data lvm2
設置 yum 源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安裝 Docker
yum install docker-ce #由于repo中默認只開啟stable倉庫,故這里安裝的是最新穩(wěn)定版17.12.0
yum install <自己的版本> # 例如:sudo yum install docker-ce-17.12.0.ce
啟動并設置開機啟動
systemctl start docker
systemctl enable docker
驗證安裝是否成功
docker version
2安裝 Jenkins
Jenkins 中文官網(wǎng):https://www.jenkins.io/zh/
- 安裝 Jenkins
Docker 安裝一切都是那么簡單。注意檢查 8080 是否已經(jī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所在服務IP}:8080
此處會有幾分鐘的等待時間。
- 初始化 Jenkins
詳情見官網(wǎng)教程:https://www.jenkins.io/zh/doc
2.1 解鎖 Jenkins
# 進入Jenkins容器
docker exec -it {Jenkins容器名} bash
# 例如 docker exec -it jenkins bash
# 查看密碼
cat /var/lib/jenkins/secrets/initialAdminPassword
# 復制密碼到輸入框里面
2.2 安裝插件
選擇第一項:安裝推薦的插件。
2.3 創(chuàng)建管理員用戶
此賬戶信息一定要記住哦。
3系統(tǒng)配置
- 安裝需要插件
進入【首頁】–【系統(tǒng)管理】–【插件管理】–【可選插件】。搜索以下需要安裝的插件,點擊安裝即可。
安裝 Maven Integration
安裝 Publish Over SSH(如果不需要遠程推送,不用安裝)
如果使用 Gitee 碼云,安裝插件Gitee(自帶 Git 不用單獨安裝)
- 配置 Maven
進入【首頁】–【系統(tǒng)管理】–【全局配置】,拉到頁面最下方 maven–maven 安裝。
4創(chuàng)建任務
- 新建任務
點擊【新建任務】,輸入任務名稱,點擊構(gòu)建一個自由風格的軟件項目。
- 源碼管理
點擊【源碼管理】–【Git】,輸入倉庫地址,添加憑證,選擇好憑證即可。
- 構(gòu)建觸發(fā)器
點擊【構(gòu)建觸發(fā)器】–【構(gòu)建】–【增加構(gòu)建步驟】–【調(diào)用頂層 Maven 目標】–【「填寫配置」】–【保存】。
此處命令只是 install,看是否能生成 jar 包。
clean install -Dmaven.test.skip=true
- 保存
點擊【保存】按鈕即可。
5測試
該功能測試是否能正常打包。
- 構(gòu)建
點擊構(gòu)建按鈕。
- 查看日志
點擊正在構(gòu)建的任務,或者點擊任務名稱進入詳情頁面,查看控制臺輸出??词欠衲艹晒Υ虺?jar 包。
該處日志第一次可能下載依賴 jar 包失敗,再次點擊構(gòu)建即可成功。
- 查看項目位置
cd /var/jenkins_home/workspace
ll # 即可查看是否存在
6運行項目
因為項目和 Jenkins 在同一臺服務器,所以我們用 Shell 腳本運行項目,原理既是通過 Dockerfile 打包鏡像,然后 docker 運行即可。
- Dockerfile
在 Spring Boot 項目根目錄新建一個名為 Dockerfile 的文件,注意沒有后綴名。
其內(nèi)容如下:(大致就是使用 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"]
- 修改 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)境不要用,因為會一直等待日志,構(gòu)建任務會失??;
加 “|| true” 是如果命令執(zhí)行失敗也會繼續(xù)實行,為了防止第一次沒有該鏡像報錯;
保存:點擊保存即可;
構(gòu)建:查看 Jenkins 控制臺輸出,輸出如下,證明成功;文章來源:http://www.zghlxwxcb.cn/news/detail-858647.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-858647.html
- 驗證
docker ps # 查看是否有自己的容器
docker logs # 自己的容器名,查看日志是否正確
# 打開瀏覽器訪問項目
到了這里,關(guān)于Jenkins + Docker 一鍵自動化部署 SpringBoot 應用最精簡流程的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!