簡體   English   中英

Jenkins 管道:在 docker 容器內構建 docker

[英]Jenkins Pipeline: Build docker within docker container

我正在嘗試執行以下操作

  1. 簽出代碼
  2. 使用其他一些 docker 映像進行一些預檢查(不想將這些安裝在 Jenkins 節點上)
  3. 使用 docker 映像maven:3.6-jdk-8構建 jar
  4. 然后運行Dockerfile構建應用鏡像
  5. 將圖像推送到存儲庫

現在,我不想在 Jenkins 節點上安裝除 Docker 之外的任何東西。 我想在 Docker 容器中運行完整的管道來實現這一點。 我正在努力的是如何從容器內構建第四步。

我寫的Jenkinsfile如下

pipeline {

    agent none
    
    stages {
        stage('Maven build') {
            agent {
                docker {
                    image 'maven:3.6-jdk-8'
                    args '-u root:root'
                }
            }
            steps {
                checkout(
                    [
                        $class: 'GitSCM',
                        branches: [
                            [name: '*/master']
                        ],
                        doGenerateSubmoduleConfigurations: false, 
                        extensions: [], 
                        submoduleCfg: [], 
                        userRemoteConfigs: [
                            [
                                credentialsId: '<cred-id>',
                                url: '<github-url>']
                            ]
                        ])
                        
                sh '''
                    set -eux pipefail

                    mvn -e clean install
                '''
            }
        }
        stage('Build docker image') {
             // Which docker image to use?
        }
    }
}

但我不確定如何在容器中構建 docker 映像。 搜索並沒有太大幫助。 我嘗試使用 Jenkins 節點來構建 docker 圖像,但似乎我無法混合搭配。 我完全理解這是一個非常開放的問題,但我認為知道直截了當的答案會很有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM