日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

jenkins+Docker+springcloud微服务持续集成

發(fā)布時(shí)間:2025/1/21 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jenkins+Docker+springcloud微服务持续集成 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

流程說明





本地部署



微服務(wù)是可以獨(dú)立部署的,如果不借助spring-boot-maven插件,package出來的jar包是不能運(yùn)行的。
借助spring-boot-maven插件package出來的jar包已經(jīng)內(nèi)嵌了tomcat相關(guān)的jar,可以獨(dú)立運(yùn)行(java -jar):

使用Dockerfile制作微服務(wù)鏡像


vi Dockerfile

docker build --build-arg JAR_FILE=tensquare_eureka_server-1.0-SNAPSHOT.jar -t eureka:v1 .
  • –build-arg JAR_FILE=xxx 設(shè)置參數(shù)的值
  • eureka:v1:eureka是鏡像名稱,v1是標(biāo)簽tag

docker build日志查看:


docker run創(chuàng)建容器驗(yàn)證一下:


docker logs -f 容器ID查看容器日志

Harbor

簡(jiǎn)介

安裝




創(chuàng)建用戶和項(xiàng)目







給tensquare項(xiàng)目添加成員:

上傳鏡像到Harbor




由于docker并不信任harbor倉(cāng)庫(kù)地址,貿(mào)然上傳到harbor會(huì)報(bào)錯(cuò):

vi /etc/docker/daemon.json 信任harbor倉(cāng)庫(kù)地址


systemctl restart docker 重啟docker

上傳到私有倉(cāng)庫(kù),需要賬號(hào)密碼:不然會(huì)報(bào)錯(cuò)

所以需要登錄harbor:

此時(shí)就會(huì)成功push:

查看harbor倉(cāng)庫(kù),就會(huì)看到剛才上傳的eureka鏡像:

從harbor下載鏡像





docker images

spring cloud微服務(wù)持續(xù)集成

代碼上傳到gitlab

idea vcs

enable

git

add

commit



remotes



push

TortoiseGit操作方式

init


commit


push

remote




從gitlab拉取項(xiàng)目源碼

在項(xiàng)目根目錄創(chuàng)建Jenkinsfile腳本文件:

jenkins操作:創(chuàng)建pipeline




將分支設(shè)計(jì)成參數(shù)接收,更靈活:


腳本中的變量設(shè)計(jì):

" "雙引號(hào)引用變量:

提交Jenkinsfile腳本文件:

Build With Parameters

構(gòu)建完畢后代碼成功pull:

提交到SonarQube代碼審查











報(bào)錯(cuò):

注釋這行:


package各個(gè)子項(xiàng)目進(jìn)行


mvn install失敗
因?yàn)閏ommon工程不是一個(gè)標(biāo)準(zhǔn)的spring cloud微服務(wù)工程,找不到啟動(dòng)類main class而報(bào)錯(cuò)。
因此不能在parent工程中引入spring-boot-maven插件,而是在需要該插件的子工程中分別引入。

再次構(gòu)建,就已經(jīng)安裝到本地倉(cāng)庫(kù)了:

mvn clean package

使用${project_name}來獲取當(dāng)前工程的名稱



package zuul時(shí)報(bào)錯(cuò):
找不到parent父工程

需手動(dòng)上傳parent的pom文件到服務(wù)器的倉(cāng)庫(kù)相應(yīng)目錄下:


使用Dockerfile編譯、生成鏡像

dockerfile-maven-plugin插件可以讀取每個(gè)工程中的Dockerfile文件自動(dòng)構(gòu)建鏡像


tensquare_eureka_server工程

使用dockerfile-maven-plugin插件調(diào)用Dockerfile腳本文件生成鏡像:

在Jenkinsfile腳本中觸發(fā)dockerfile-maven-plugin插件的執(zhí)行:


構(gòu)建完畢后會(huì)生成eureka工程的鏡像:

每個(gè)子工程都需要添加Dockerfile腳本文件和在pom.xml中添加dockerfile-maven-plugin插件:


上傳鏡像到harbor鏡像倉(cāng)庫(kù)


定義鏡像的標(biāo)簽(版本號(hào)):

定義harbor的URL地址:

定義harbor的項(xiàng)目名稱:



上傳到harbor是需要login的,賬號(hào)密碼寫在Jenkinsfile腳本中就會(huì)暴露給所有開發(fā)人員,所以應(yīng)該在jenkins的憑據(jù)中添加harbor的賬號(hào)密碼:



點(diǎn)擊賬號(hào)進(jìn)入會(huì)看到自動(dòng)生成的ID:

在Jenkinsfile腳本中定義harbor的登錄憑證ID:

在流水線語(yǔ)法中選擇:



對(duì)生成的腳本代碼進(jìn)行變量替換(可選):


提交push腳本。
jenkins構(gòu)建日志:


登錄harbor倉(cāng)庫(kù)查看push的鏡像:

從harbor拉取鏡像和發(fā)布應(yīng)用


jenkins安裝Publish Over SSH插件


配置101ssh免密登錄到103





生成遠(yuǎn)程執(zhí)行命令腳本:



與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的jenkins+Docker+springcloud微服务持续集成的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。