javascript
docker打包镜像上传_Jenkins | 一键打包部署Spring Boot 应用的Docker镜像
一、前言
1、本文主要內(nèi)容
將在項(xiàng)目中實(shí)際使用到的相關(guān)東西整理記錄一波,同時(shí)可以方便其他同學(xué)在使用到的時(shí)候參考一下(自己也備忘),有不對(duì)的地方,歡迎指出~~
- Docker部署SpringBoot 項(xiàng)目通用Dockerfile文件、腳本
- Jenkins新建任務(wù)圖文詳解
3、本文環(huán)境信息
服務(wù)器
操作系統(tǒng)硬件配置IP說(shuō)明 CentOS 7 4C16G 10.133.28.54 部署Jenkins Jenkins版本
Jenkins安裝包有兩種,一種是LTS,一種是Weekly。LTS是穩(wěn)定版,Weekly每周會(huì)更新一次,一般使用LTS就行了,最新版的LTS:2.235.2
Docker
Docker Engine - Community : 19.03.8
Spring Boot應(yīng)用
使用的是版本2.2.5.RELEASE,當(dāng)然只要是一個(gè)Spring Boot應(yīng)用都可以
GitLab
本文演示使用的是社區(qū)版12.7.6 ? 也可以使用GitHub 、Gitee或者SVN都可以
二、準(zhǔn)備工作
1、Docker 環(huán)境安裝
在Linux服務(wù)器上安裝Docker環(huán)境,具體可以參考:Docker | 在CentOS上安裝Docker Engine
2、Jenkins 環(huán)境安裝
在Linux服務(wù)器上安裝Jenkins,具體可以參考:CentOS下使用Docker安裝Jenkins及配置詳細(xì)教程
3、GitLab 環(huán)境安裝
在Linux服務(wù)器上安裝GitLab,具體可以參考:GitLab持續(xù)集成發(fā)布之一:CentOS7下GitLab安裝部署教程
三、打包及部署
?一般微服務(wù)項(xiàng)目都會(huì)有很多個(gè)服務(wù),本文以cloud-gateway 微服務(wù)的網(wǎng)關(guān)module為例來(lái)演示
?1、打鏡像Dockerfile及運(yùn)行腳本
目前微服務(wù)盛行,既然是微服務(wù),大部分都會(huì)采用Docker容器部署,這樣可以非常快捷的擴(kuò)容,所以本文也會(huì)從打鏡像,鏡像啟動(dòng),鏡像推送等方面詳細(xì)的介紹下。
通用版Dockerfile
生產(chǎn)環(huán)境,可以根據(jù)需求在ENTRYPOINT命令行中增加JVM相對(duì)應(yīng)參數(shù)的設(shè)置
?執(zhí)行腳本
測(cè)試環(huán)境一般情況下,都是在一臺(tái)服務(wù)器,啟動(dòng)多個(gè)Docker容器,此處將spring.profile.active參數(shù)提取出來(lái)了,可以做到真正的一包多環(huán)境使用,可以參考以下腳本:
生產(chǎn)環(huán)境,一般情況下都需要將打好的鏡像推送到docker私有倉(cāng)庫(kù)中,所以說(shuō)每一版都需要有版本號(hào)的變化,可以考慮使用時(shí)間戳動(dòng)態(tài)版本號(hào),docker私有倉(cāng)庫(kù)相關(guān)介紹可以參考:Docker | 在CentOS上搭建Docker私有倉(cāng)庫(kù)Registry-v2
?將Dockerfile、運(yùn)行腳本run.sh放到服務(wù)器的/home/cloud/test-deploy/cloud-gateway目錄,后續(xù)通過Jenkins打包的Jar 文件也需要拷貝到該目錄,如果需要配置SAP的環(huán)境,那對(duì)應(yīng)的jar、so文件都需要拷貝到這一個(gè)目錄,這樣在打鏡像的時(shí)候,就會(huì)把相對(duì)應(yīng)的環(huán)境打到鏡像里面。
2、Jenkins創(chuàng)建任務(wù)
新建一個(gè)自由風(fēng)格的任務(wù)
配置源碼管理
我這邊使用的是GitLab,當(dāng)然你們使用Github、Gitee都是可以的。
增加一個(gè)訪問GitLab的用戶名密碼
配置構(gòu)建
在構(gòu)建這個(gè)模塊下呢,我們主要配置使用Mavenn來(lái)進(jìn)行打包、配置通過SSH執(zhí)行命令并傳輸文件等
想發(fā)版的時(shí)候,點(diǎn)一下立即構(gòu)建,Jenkins就會(huì)自動(dòng)從代碼倉(cāng)庫(kù)拉取最新代碼,進(jìn)行打包,打鏡像,啟動(dòng)鏡像一鍵完成了。
另外,前臺(tái)代碼也是可以通過Jenkins來(lái)進(jìn)行一鍵打包部署的,與后臺(tái)的稍微有些不同,后續(xù)我會(huì)單獨(dú)寫一篇文章,來(lái)演示下如何進(jìn)行前臺(tái)代碼的一鍵打包部署,前臺(tái)代碼使用的是VUE進(jìn)行演示。
先打包使用到的通用module。點(diǎn)擊增加構(gòu)建步驟-->調(diào)用頂層Maven目標(biāo)
?說(shuō)明下:我這個(gè)演示項(xiàng)目已經(jīng)把一些通用的東西抽取出來(lái)了,而gateway 是依賴這些通用的module,所以我這會(huì)先將這些通用的進(jìn)行打包,防止在打包gateway的時(shí)候,找不到對(duì)應(yīng)的jar包
?配置打包c(diǎn)loud-gateway,點(diǎn)擊增加構(gòu)建步驟-->調(diào)用頂層Maven目標(biāo),具體配置項(xiàng)參考下圖:
配置執(zhí)行上面準(zhǔn)備好的腳本。點(diǎn)擊增加構(gòu)建步驟-->Send files or execute commands over SSH選項(xiàng),這個(gè)是將打完包的jar包拷貝到指定服務(wù)器的指定目錄,完成后執(zhí)行相對(duì)應(yīng)的腳本,具體如下圖:
?這個(gè)地方,需要提前配置好服務(wù)器的憑證信息(在公眾號(hào)的其他文章有教程,可以翻一下),服務(wù)器需要開啟ssh訪問,我這里是Jenkins與測(cè)試服務(wù)器不在一起,如果在一起的話,就可以選擇只運(yùn)行腳本命令的那個(gè)構(gòu)建選項(xiàng)即可。
?點(diǎn)擊保存,這樣一個(gè)任務(wù)就創(chuàng)建完成了。
覺得有用就順手轉(zhuǎn)發(fā)、點(diǎn)贊、在看三連走一波,非常感謝!
長(zhǎng)按/掃碼關(guān)注我吧,會(huì)找到你想要的……?
???喜歡就點(diǎn)個(gè)在看吧
總結(jié)
以上是生活随笔為你收集整理的docker打包镜像上传_Jenkins | 一键打包部署Spring Boot 应用的Docker镜像的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: automation服务不能创建对象
- 下一篇: 机械动力学瑞利法matlab程序,工业机