Dockerfile if else 条件与外部参数 [英] Dockerfile if else condition with external arguments
本文介绍了Dockerfile if else 条件与外部参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有 dockerfile
I have dockerfile
FROM centos:7
ENV foo=42
然后我构建它
docker build -t my_docker .
并运行它.
docker run -it -d my_docker
是否可以从命令行传递参数并将其与 Dockerfile 中的 if else 一起使用?我的意思是像
Is it possible to pass arguments from command line and use it with if else in Dockerfile? I mean something like
FROM centos:7
if (my_arg==42)
{ENV=TRUE}
else:
{ENV=FALSE}
并使用此参数构建.
docker build -t my_docker . --my_arg=42
推荐答案
它可能看起来不那么干净,但你可以让你的 Dockerfile(条件)如下:
It might not look that clean but you can have your Dockerfile (conditional) as follow:
FROM centos:7
ARG arg
RUN if [[ -z "$arg" ]] ; then echo Argument not provided ; else echo Argument is $arg ; fi
然后将图像构建为:
docker build -t my_docker .--build-arg arg=45
或
docker build -t my_docker .
这篇关于Dockerfile if else 条件与外部参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文