【问题标题】:docker build with jenkins issuedocker build with jenkins 问题
【发布时间】:2019-05-29 00:00:16
【问题描述】:

我正在尝试编写一个管道,它首先克隆一个存储库,然后构建一个 docker 映像,然后将 docker 映像推送到 docker hub。以下是我的詹金斯文件。

pipeline {
    agent { dockerfile true }
    environment {
        APPLICATION = 'connect'
        ENVIRONMENT = 'dev'
        BUILD_VERSION = '0.9.5'
        MAINTAINER_NAME = 'Shoaib'
        MAINTAINER_EMAIL = 'shoaib@email.com'
        BUILD_DOCKER_REPO = repo1/images'
        DOCKER_IMAGE_TAG = 'repo1/images:connect_dev_0.9.5'
    }
    stages {
        stage('clone repository') {
            steps {
                checkout Jenkins-Integration
            }
        }
        stage('Build Image') {
            steps {
                image = docker.build("-f Dockerfile.local", "--no-cache", "-t ${DOCKER_IMAGE_TAG}", "--build-arg envior=${ENVIRONMENT} .", "--build-arg build_version=${BUILD_VERSION} .", "--build-arg maintainer_name=${MAINTAINER_NAME} .", "--build-arg maintainaer_email=${MAINTAINER_EMAIL} .")
            }
        }
        stage('Deploy') {
            steps {
                script {
                    docker.withRegistry('https://registry.example.com', 'docker-hub-credentials') {
                        image.push(${DOCKER_IMAGE_TAG})
                    }
                }
            }
        }
    }
}

但是当我在蓝海中运行这项工作时,我遇到了以下错误。

我试过用谷歌搜索,但找不到满意的答案。任何帮助表示赞赏。

【问题讨论】:

  • 删除每个--build-arg key=value末尾的所有.,除了最后一个--build-arg ...
  • 试过@yong 但同样的响应“WorkflowScript: 20: Expected a step @ line 20, column 17.”

标签: docker jenkins jenkins-pipeline docker-build jenkins-docker


【解决方案1】:

将下面阶段的docker.build 放入script 中,如下所示:

   stage('Build Image') {
        steps {
           script {
            def image = docker.build("-f Dockerfile.local", "--no-cache", "-t ${DOCKER_IMAGE_TAG}", "--build-arg envior=${ENVIRONMENT}", "--build-arg build_version=${BUILD_VERSION}", "--build-arg maintainer_name=${MAINTAINER_NAME}", "--build-arg maintainaer_email=${MAINTAINER_EMAIL} .")
           }
        }
    }

【讨论】:

  • 谢谢,它现在可以工作了,另一个问题,${ENVIRONMENT} 是访问环境中声明的变量的正确方法吗?
猜你喜欢
  • 2017-09-17
  • 2018-10-27
  • 2017-01-19
  • 1970-01-01
  • 2019-04-06
  • 2021-07-13
  • 2017-07-06
  • 2020-06-27
  • 1970-01-01
相关资源
最近更新 更多