站長資訊網
        最全最豐富的資訊網站

        技術解答之Pipeline整合Docker容器

        本篇文章給大家帶來了關于流水線繼承docker用法的相關知識,主要是Pipeline整合Docker容器的相關問題,希望對大家有幫助。

        技術解答之Pipeline整合Docker容器

        本篇文章主要描述流水線集成Docker用法

        技術解答之Pipeline整合Docker容器

        一、背景描述

        微服務架構是當前主流的技術選型,在業務具體落地時,會存在很多業務服務,不管是在開發、測試、上線的任意節點中,如果基于手動編譯的方式打包服務,操作成本不僅極高,而且很容易出現紕漏。

        通過Pipeline流水線的方式,將服務鏡像構建編排成一鍵觸發執行,實現自動化的管理流程,是微服務架構中的必要的功能模塊。

        二、流程設計

        本篇中的流程節點,主要針對打包好的應用Jar包,在docker模塊中的處理流程,主要是鏡像構建管理與容器運行:

        技術解答之Pipeline整合Docker容器

        • 構建docker文件目錄與內容;
        • 拷貝Jar包,創建Dockerfile腳本文件;
        • 執行docker鏡像構建,推送云倉庫;
        • 拉取鏡像文件并運行docker容器;

        整個流程的都放在Pipeline流水線中,銜接在本地Jar包生成之后。

        三、實現過程

        1、插件安裝

        首先安裝流程中Docker集成的相關插件:Docker PipelineDocker pluginCloudBees Docker Hub/Registry Notification

        在之前的流水線篇幅中,已經通過流水線完成Gitee倉庫代碼pull和本地打包,下面開始處理docker環節。

        2、鏡像構建腳本

        關于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目錄,再把Jar包和Docker腳本放進去;
        • cat-EOF-EOF:即創建Dockerfile文件,并把中間的內容寫入;
        • 腳本中的內容必須在文件中頂行寫入;

        3、打包推送

        這里即進入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"         }     } }

        4、憑據配置

        打開Manage Jenkins界面,Manage Credentials選項;

        技術解答之Pipeline整合Docker容器

        按如下流程配置即可:

        技術解答之Pipeline整合Docker容器

        四、源代碼地址

        GitEE·地址 https://gitee.com/cicadasmile/butte-auto-parent Wiki·地址 https://gitee.com/cicadasmile/butte-java-note

        推薦學習:《docker視頻教程》

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 日韩欧精品无码视频无删节 | 国产精品视频一区二区三区经| 国产A√精品区二区三区四区| 免费精品无码AV片在线观看| 国产精品无打码在线播放| 国产美女久久精品香蕉69| 欧美人与性动交α欧美精品 | 久久国产免费观看精品3| 久久99精品久久久久久齐齐| 欧美一区二区精品系列在线观看| 亚洲av永久无码精品漫画| 精品无码国产污污污免费网站国产 | 国产精品乱码一区二区三区| 国产成人精品久久二区二区| 亚洲国产精品无码一线岛国| 欧美精品在线免费| 久久e热在这里只有国产中文精品99| 精品国产日产一区二区三区| 国产精品原创巨作av女教师| 亚洲国产精品无码久久SM | 国产精品扒开腿做爽爽爽视频| 午夜精品乱人伦小说区| 亚洲人成国产精品无码| 亚洲精品人成无码中文毛片| 国产精品美女久久久免费| 97国产视频精品| 99热这里只有精品6国产免费| 久久精品嫩草影院| 老司机69精品成免费视频| 国产成人精品亚洲日本在线| 成人国产精品免费视频| 国产精品人成在线播放新网站| 久久精品国产第一区二区三区| 日产精品99久久久久久| 亚洲AV日韩精品久久久久久久| 亚洲午夜国产精品无码| 亚洲精品国产首次亮相| 无码国内精品久久人妻| 欧美肥屁VIDEOSSEX精品| 精品日韩亚洲AV无码一区二区三区| 久久精品国产亚洲AV麻豆网站|