将env var从docker run jenkinsfile中的cmd传递给dockerfie

时间:2019-04-05 03:55:19

标签: docker jenkins jenkins-pipeline dockerfile

我正在尝试将变量从jenkinsfile传递给dockerfile。所以我在jenkinsfile中运行了一个docker run命令:

 steps {
          checkout scm
          sh '''
          echo ${GIT_BRANCH}
          mkdir -p `pwd`/build_target
          docker build -t android_build -f docker/Dockerfile.android .
          docker run --env GIT_BRANCH=${GIT_BRANCH} android_build
          ls -la `pwd`/build_target/*
       '''

并尝试在dockerfile中使用env变量:

 FROM openjdk:8u212-jdk

 USER root
 ENV GIT_BRANCH $GIT_BRANCH
 RUN echo ${GIT_BRANCH}
 RUN if [ "GIT_BRANCH" = "develop" ] ; then echo 'develop' ; else if  [ "GIT_BRANCH" = "master" ] ; then echo 'aster' ; fi

但是不幸的是,由于无法获取env变量,它无法正常工作并使管道崩溃。 我的代码有什么问题?

1 个答案:

答案 0 :(得分:0)

我最后在构建时使用“ --build-arg”标志修复了变量,然后便可以在dockerfile中使用它。希望有一天能对某人有所帮助