Dockerfile中的条件运行

时间:2018-05-26 02:11:40

标签: docker dockerfile

在我的Dockerfile中,我有这一行:

ARG ENV
RUN [ "$ENV" = "prod" ] && cp config.py.j2 config.py

然而,当我构建图像时,它会显示:

命令'/ bin / sh -c [“($ ENV)”=“prod”]&& cp config.py.j2 config.py'返回非零代码:1

我怎样才能完成这项工作?

谢谢!

1 个答案:

答案 0 :(得分:0)

shell中失败的布尔表达式的返回码是1。试试吧:

$ [ "1" = "0" ] && echo equal
$ echo $?
1

这正是你所看到的。通过在表达式的末尾添加|| :,可以在每种情况下显式返回0:

$ [ "1" = "0" ] && echo equal || :
$ echo $?
0