【问题标题】:Jenkins Pipeline: Build docker within docker containerJenkins Pipeline:在 docker 容器中构建 docker
【发布时间】:2020-10-18 18:08:58
【问题描述】:

我正在尝试执行以下操作

  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 映像,但似乎无法混合搭配。我完全理解这是一个相当开放的问题,但我认为知道直截了当的答案会很有帮助。

【问题讨论】:

    标签: java spring-boot docker maven jenkins


    【解决方案1】:
    猜你喜欢
    • 1970-01-01
    • 2019-03-04
    • 2018-06-19
    • 1970-01-01
    • 2018-03-27
    • 2020-05-08
    • 2017-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多