我试图将变量从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。我的代码有什么问题???
我最后通过使用“--build-arg”标志在构建时修复变量,然后我能够在dockerfile中使用它。希望有一天能帮助某人