首頁>技術>

1. 使用Jenkins來實現微服務架構下的自動化部署!

在微服務架構中,隨著專案拆分越來越細,導致服務越來越多,服務的打包部署就會成為一個相當麻煩的事情。在我之前工作的公司都是本地打包好,上傳到伺服器上,再建立指令碼執行,這樣產生的問題就是服務累積越多,部署越耗大量的人力和時間,那有沒有什麼辦法讓我們部署一次之後,只要點選執行就可以自動部署呢?當然有!下面我們使用Jenkins來完成一個微服務架構中的自動化一體化部署工作。

1.1 環境準備1.2 部署架構圖2 Jenkins自動化部署spring boot專案2.1 程式碼上傳到Gitlab

上傳至程式碼倉庫之後,開始進行jenkins建立任務

2.2 構建jenkins任務建立任務新增gitlab專案增加構建步驟,呼叫頂層maven目標配置maven環境

注意,如果專案是聚合專案,構建專案中的依賴模組,否則當構建可執行的服務模組時會因為無法找到這些模組而構建失敗

# 只package admin,core,web三個模組clean package -pl admin core web -am複製程式碼使用額外指令碼檔案完成maven打包後的自動推送到harbor映象倉庫並啟動新容器釋出專案#!/usr/bin/env bash# 初始化核心引數# jar包名稱app_name='hongneng-test'# 釋出版本version='latest'# harbor映象倉庫域名地址harbor_registry='www.example.com'# 映象倉庫image_prefix='hongneng'# maven構建版本maven_version='0.0.1-SNAPSHOT'# 初始埠INIT_EXPOSE=8086# 對外服務埠EXPOSE=8086# jenkins任務構建原路徑jenkins_jar_path='/usr/local/docker/jenkins/jenkins_home/workspace/'# 構建映象路徑projects_path='/usr/local/projects/'# 停止刪除容器docker stop ${app_name}echo 'stop container '${app_name}' success!'docker rm ${app_name}echo 'delete container '${app_name}' success!'# 複製jar包到指定目錄cp ${jenkins_jar_path}${app_name}/target/${app_name}-${maven_version}.jar ${projects_path}${app_name}/cp ${jenkins_jar_path}${app_name}/src/docker/Dockerfile ${projects_path}${app_name}/# 構建推送映象docker login --username=zhouxinlei --password=Zxl298828 https://${harbor_registry}docker build -t ${image_prefix}/${app_name}:${maven_version} -f ${projects_path}${app_name}/Dockerfile ${projects_path}${app_name}/.docker tag ${image_prefix}/${app_name}:${maven_version} ${harbor_registry}/${image_prefix}/${app_name}:${version}docker push ${harbor_registry}/${image_prefix}/${app_name}:${version}docker rmi `docker images|grep none | awk '{print $3}'`docker rmi ${image_prefix}/${app_name}:${maven_version}# 執行容器docker run -p ${EXPOSE}:${INIT_EXPOSE} --name ${app_name} -v /etc/localtime:/etc/localtime -v ${projects_path}${app_name}/logs:/var/logs -d ${harbor_registry}/${image_prefix}/${app_name}:${version}echo 'run container '${app_name}' success!'複製程式碼Dockerfile檔案編寫

在程式碼原始檔src目錄下

# 該映象需要依賴的基礎映象FROM openjdk:8-jdk-alpineVOLUME /tmp# 宣告服務執行在8080埠EXPOSE 8086# 將當前目錄下的jar包複製到docker容器的/目錄下ADD hongneng-test-0.0.1-SNAPSHOT.jar app.jar# 指定docker容器啟動時執行jar包ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]# 指定維護者的名字MAINTAINER zhouxinlei複製程式碼點選儲存,完成hongneng-test 的執行任務建立。2.3 執行jenkins任務可以在控制檯檢視maven構建步驟如下圖所示,表示構建釋出spring boot專案成功檢視容器執行狀況2.4 訪問專案介面3 總結

我們通過在Jenkins中建立任務,完成了微服務架構中服務的打包部署工作,這樣當我們每次修改完程式碼後,只需點選啟動任務,就可以實現一鍵打包部署,省去了頻繁打包部署的麻煩。

連結:https://juejin.im/post/5e7ee45c6fb9a03c52682f4f

喜歡對你有幫助的話記得加個關注不迷路哦

最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 推薦10款最好的Python開發編輯器,總有款是你的菜