本篇文章主要描述流水線整合Docker用法。
微服務架構是當前主流的技術選型,在業務具體落地時,會存在很多業務服務,不管是在開發、測試、上線的任意節點中,如果基於手動編譯的方式打包服務,操作成本不僅極高,而且很容易出現紕漏。
通過Pipeline流水線的方式,將服務映象構建編排成一鍵觸發執行,實現自動化的管理流程,是微服務架構中的必要的功能模組。
本篇中的流程節點,主要針對打包好的應用Jar
包,在docker模組中的處理流程,主要是映象構建管理與容器執行:
Jar
包,建立Dockerfile
指令碼檔案;整個流程的都放在Pipeline流水線中,銜接在本地Jar包生成之後。
首先安裝流程中Docker整合的相關外掛:Docker Pipeline
,Docker plugin
,CloudBees Docker Hub/Registry Notification
。
在之前的流水線篇幅中,已經通過流水線完成Gitee倉庫程式碼pull和本地打包,下面開始處理docker環節。
關於Dockerfile的指令碼語法也可以參考之前docker篇幅,下面看流水線中的用法:
environment { docker_directory = 'docker-app' docker_repository = '倉庫URL' } stage('Dockerfile') { steps { sh ''' rm -rf ${docker_directory} mkdir -p ${docker_directory} cp auto-client/target/auto-client-1.0-SNAPSHOT.jar ${docker_directory}/auto-client.jar cd ${docker_directory} cat>Dockerfile<<EOF FROM java:8 MAINTAINER cicadasmile VOLUME /data/docker/logs ADD auto-client.jar application.jar ENTRYPOINT ["java","-Dspring.profiles.active=dev","-Djava.security.egd=file:/dev/./urandom","-jar","/application.jar"] EOF cat Dockerfile ''' echo "create Dockerfile success" } }
指令碼說明:
docker-app
;這裡即進入docker目錄,執行映象打包的操作,並把映象推播到雲端倉庫,很多倉庫都是私有的,需要身份驗證,通過設定憑據去存取:
stage('DockerImage'){ steps { script { dir("${docker_directory}") { sh 'ls' docker.withRegistry("${docker_directory}", '存取憑據') { docker.build("doc-line-app:latest").push() } } echo "build DockerImage success" } } }
開啟Manage Jenkins
介面,Manage Credentials
選項;
按如下流程設定即可:
GitEE·地址 https://gitee.com/cicadasmile/butte-auto-parent Wiki·地址 https://gitee.com/cicadasmile/butte-java-note
推薦學習:《》
以上就是技術解答之Pipeline整合Docker容器的詳細內容,更多請關注TW511.COM其它相關文章!