Bash 根据环境变量的存在,将条件开关应用于docker build命令
我正试图清理一些关于构建Docker映像的CI/CD代码。有鉴于此,能够根据环境变量的存在有条件地将一些开关应用于Bash 根据环境变量的存在,将条件开关应用于docker build命令,bash,Bash,我正试图清理一些关于构建Docker映像的CI/CD代码。有鉴于此,能够根据环境变量的存在有条件地将一些开关应用于docker build命令将非常有用。我想到的是: docker build \ --cache-from ${INPUT_IMAGE}:latest \ --tag ${INPUT_IMAGE}:${INPUT_IMAGE_TAG} \ --tag ${INPUT_IMAGE}:latest \ "${INPUT_TARGET:+'--target' \"\$IN
docker build
命令将非常有用。我想到的是:
docker build \
--cache-from ${INPUT_IMAGE}:latest \
--tag ${INPUT_IMAGE}:${INPUT_IMAGE_TAG} \
--tag ${INPUT_IMAGE}:latest \
"${INPUT_TARGET:+'--target' \"\$INPUT_TARGET\"}" \
${INPUT_CONTEXT}
如第5行所示,如果存在INPUT\u target
环境变量,我希望有条件地应用target
开关。但是,每次我构建Docker时,Docker都会抱怨“Docker build”只需要一个参数。,我怀疑这表明开关在应用过程中受到了损坏
如何根据存在的
INPUT\u target
环境变量有条件地将--target
开关应用到命令?您不能引用表达式。在引号中,它不会进行分词,因此会作为一个参数--目标值
呈现给docker,而不是--目标值
和值
:
docker build \
--cache-from "${INPUT_IMAGE}:latest" \
--tag "${INPUT_IMAGE}:${INPUT_IMAGE_TAG}" \
--tag "${INPUT_IMAGE}:latest" \
${INPUT_TARGET:+--target ${INPUT_TARGET}} \
"${INPUT_CONTEXT}"
PS:当你在错误的地方引用时,你错过了所有其他地方的引用:)我已经添加了它们