站長(zhǎng)資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        技術(shù)解答之Pipeline整合Docker容器

        本篇文章給大家?guī)?lái)了關(guān)于流水線繼承docker用法的相關(guān)知識(shí),主要是Pipeline整合Docker容器的相關(guān)問(wèn)題,希望對(duì)大家有幫助。

        技術(shù)解答之Pipeline整合Docker容器

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

        技術(shù)解答之Pipeline整合Docker容器

        一、背景描述

        微服務(wù)架構(gòu)是當(dāng)前主流的技術(shù)選型,在業(yè)務(wù)具體落地時(shí),會(huì)存在很多業(yè)務(wù)服務(wù),不管是在開(kāi)發(fā)、測(cè)試、上線的任意節(jié)點(diǎn)中,如果基于手動(dòng)編譯的方式打包服務(wù),操作成本不僅極高,而且很容易出現(xiàn)紕漏。

        通過(guò)Pipeline流水線的方式,將服務(wù)鏡像構(gòu)建編排成一鍵觸發(fā)執(zhí)行,實(shí)現(xiàn)自動(dòng)化的管理流程,是微服務(wù)架構(gòu)中的必要的功能模塊。

        二、流程設(shè)計(jì)

        本篇中的流程節(jié)點(diǎn),主要針對(duì)打包好的應(yīng)用Jar包,在docker模塊中的處理流程,主要是鏡像構(gòu)建管理與容器運(yùn)行:

        技術(shù)解答之Pipeline整合Docker容器

        • 構(gòu)建docker文件目錄與內(nèi)容;
        • 拷貝Jar包,創(chuàng)建Dockerfile腳本文件;
        • 執(zhí)行docker鏡像構(gòu)建,推送云倉(cāng)庫(kù);
        • 拉取鏡像文件并運(yùn)行docker容器;

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

        三、實(shí)現(xiàn)過(guò)程

        1、插件安裝

        首先安裝流程中Docker集成的相關(guān)插件:Docker Pipeline,Docker pluginCloudBees Docker Hub/Registry Notification。

        在之前的流水線篇幅中,已經(jīng)通過(guò)流水線完成Gitee倉(cāng)庫(kù)代碼pull和本地打包,下面開(kāi)始處理docker環(huán)節(jié)。

        2、鏡像構(gòu)建腳本

        關(guān)于Dockerfile的腳本語(yǔ)法也可以參考之前docker篇幅,下面看流水線中的用法:

            environment {         docker_directory = 'docker-app'         docker_repository = '倉(cāng)庫(kù)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"             }         }

        腳本說(shuō)明:

        • 在流水線的工作空間創(chuàng)建目錄docker-app;
        • 每次執(zhí)行都清空一次docker目錄,再把Jar包和Docker腳本放進(jìn)去;
        • cat-EOF-EOF:即創(chuàng)建Dockerfile文件,并把中間的內(nèi)容寫入;
        • 腳本中的內(nèi)容必須在文件中頂行寫入;

        3、打包推送

        這里即進(jìn)入docker目錄,執(zhí)行鏡像打包的操作,并把鏡像推送到云端倉(cāng)庫(kù),很多倉(cāng)庫(kù)都是私有的,需要身份驗(yàn)證,通過(guò)配置憑據(jù)去訪問(wèn):

        stage('DockerImage'){     steps {         script {             dir("${docker_directory}") {                 sh 'ls'                 docker.withRegistry("${docker_directory}", '訪問(wèn)憑據(jù)') {                    docker.build("doc-line-app:latest").push()                 }             }             echo "build DockerImage success"         }     } }

        4、憑據(jù)配置

        打開(kāi)Manage Jenkins界面,Manage Credentials選項(xiàng);

        技術(shù)解答之Pipeline整合Docker容器

        按如下流程配置即可:

        技術(shù)解答之Pipeline整合Docker容器

        四、源代碼地址

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

        推薦學(xué)習(xí):《docker視頻教程》

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
        主站蜘蛛池模板: 亚州日韩精品专区久久久| 久久综合久久自在自线精品自| 色婷婷噜噜久久国产精品12p| 国产亚洲福利精品一区| 熟女精品视频一区二区三区| 精品国产亚洲一区二区在线观看| 97在线精品视频| 久久久久久国产精品无码超碰| 精品久久久久中文字| 国产精品一久久香蕉产线看| 久99精品视频在线观看婷亚洲片国产一区一级在线 | 国精品午夜福利视频不卡麻豆| 日韩精品无码久久一区二区三| 国产精品推荐天天看天天爽| 久久精品视频网| 国产日韩精品欧美一区| 亚洲精品无码专区久久久| 欧美成人精品网站播放| 国产这里有精品| 国产三级国产精品国产普男人 | 丝袜美腿国产精品视频一区| 国产精品亚韩精品无码a在线 | 亚洲国产欧美日韩精品一区二区三区 | 亚洲视频在线精品| 男人的天堂精品国产一区| 国产精品午夜久久| 93精91精品国产综合久久香蕉| 青青青青久久精品国产h| 国产精品夜色一区二区三区| 91精品国产91久久综合| 国产精品亚洲日韩欧美色窝窝色欲 | 无码精品蜜桃一区二区三区WW| 乱人伦人妻精品一区二区| 精品a在线观看| 国产专区日韩精品欧美色| 国产亚洲精品国看不卡| 精品多毛少妇人妻AV免费久久| 精品国产日韩亚洲一区| 久草欧美精品在线观看| 欧洲精品码一区二区三区免费看 | 精品国产福利一区二区|