将env var从docker run cmd传递到jenkinsfile到dockerfile

问题描述 投票:1回答:1

我试图将变量从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 var。我的代码有什么问题???

docker jenkins jenkins-pipeline dockerfile
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.