Dockerfile if else 条件与外部参数 [英] Dockerfile if else condition with external arguments

查看:128
本文介绍了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屋!

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