如何在if-else条件下构建Docker映像,如下所述?
我需要创建一个如何在if-else条件下构建Docker映像,如下所述?,docker,dockerfile,Docker,Dockerfile,我需要创建一个dockerfile 我的图片是关于下载2zip文件的。我希望这些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文件的人 如何操作?使用A.zip和B.zip创建doc
dockerfile
我的图片是关于下载2zip
文件的。我希望这些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
文件的人
如何操作?使用
A.zip
和B.zip
创建docker映像,并为docker映像设置CMD
的shell脚本。允许用户在运行时传递环境变量,此shell脚本可以捕获ENV值并相应地执行操作。在构建映像时,可以使用ARG
命令和--build ARG
标志。然后你可以这样做你的假设:
FROM debian
ARG X
RUN /bin/bash -c "if [ '${X}' == 'x' ]; then echo 'A'; else echo 'B'; fi"
docker build--build arg X=X。如果有人提取图像,他们将得到一个固定的二进制文件,其中包含一个或另一个程序。也许你想要多张图片,每种变体一张?或者,如果zip文件实际上是数据,则将其与图像分开分发,并使用
docker run-v
注入它们?同意David的观点,这看起来更适合使用图像标记。否则,有人将需要拉一个包含两个zip文件的图像,并使用运行时逻辑来选择要使用的图像。