我正在尝试将变量从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变量,它无法正常工作并使管道崩溃。 我的代码有什么问题?
答案 0 :(得分:0)
我最后在构建时使用“ --build-arg”标志修复了变量,然后便可以在dockerfile中使用它。希望有一天能对某人有所帮助