首頁  >  文章  >  運維  >  技術解答之Pipeline整合Docker容器

技術解答之Pipeline整合Docker容器

WBOY
WBOY轉載
2022-02-09 18:16:532725瀏覽

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

技術解答之Pipeline整合Docker容器

本篇主要描述管線整合Docker用法

一、背景描述

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

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

二、流程設計

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

    建置docker檔案目錄與內容;
  • 拷貝
  • Jar#​​#建置 Dockerfile腳本檔案;
  • 執行docker映像構建,推送雲端倉庫;
  • #拉取映像檔並運行docker容器;
整個流程的都放在Pipeline管線中,銜接在本地Jar包生成之後。

三、實作流程

1、外掛程式安裝

首先安裝流程中Docker整合的相關外掛程式:

Docker PipelineDocker plugin CloudBees 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選項;


####################################如下流程配置即可:###############四、原始碼位址###
GitEE·地址
https://gitee.com/cicadasmile/butte-auto-parent
Wiki·地址
https://gitee.com/cicadasmile/butte-java-note
###推薦學習:《###docker影片教學###》## ####

以上是技術解答之Pipeline整合Docker容器的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除