如下所述,如何使用if-else条件构建Docker映像?

时间:2019-03-26 11:32:07

标签: docker dockerfile

我具有创建dockerfile的以下要求。

我的图像仅用于下载2个zip文件。我希望按照以下条件下载这些zip文件。

if ($arg == "xxx")
    'download this A.zip'
else if ($arg == "zzz") 
    'download this B.zip'
else 
    'download A.zip and B.zip'

现在,提取此类Docker映像的人应该根据传递的参数下载适当的zip文件。

怎么办?

2 个答案:

答案 0 :(得分:0)

同时使用A.zipB.zip创建docker镜像,并为docker image设置CMD的shell脚本。允许用户在运行时传递环境变量,此shell脚本可以捕获ENV值并采取相应的措施。

答案 1 :(得分:0)

构建图像时,可以利用ARG命令和--build-arg标志。然后您可以像这样进行ifs:

FROM debian
ARG X
RUN /bin/bash -c "if [ '${X}' == 'x' ]; then echo 'A'; else echo 'B'; fi"

还有docker build --build-arg X=x .