Dockerfile(如果带有外部参数的其他条件) [英] Dockerfile if else condition with external arguments

查看:378
本文介绍了Dockerfile(如果带有外部参数的其他条件)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有dockerfile

I have dockerfile

FROM centos:7
ENV foo=42

然后我构建它

docker build -t my_docker .

并运行它。

docker run -it -d  my_docker

是否可以从命令行并将其与Dockerfile中的if一起使用?我的意思是

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 [ "x$arg" = "x" ] ; 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(如果带有外部参数的其他条件)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆