Dockerfile中的条件运行
在我的Dockerfile中,我有一行:Dockerfile中的条件运行,docker,dockerfile,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 我怎样才能得到这份工作 谢谢大家! shell中失败布尔表达式的返回代码为1。试试看: $ [ "1" = "0" ] && ech
ARG ENV
RUN [ "$ENV" = "prod" ] && cp config.py.j2 config.py
但是,当我构建图像时,它会显示:
命令“/bin/sh-c[”($ENV)”=“prod”]&&cp config.py.j2 config.py”返回一个非零代码:1
我怎样才能得到这份工作
谢谢大家! shell中失败布尔表达式的返回代码为
1
。试试看:
$ [ "1" = "0" ] && echo equal
$ echo $?
1
这正是你所看到的。通过在表达式末尾添加| |:
,可以在任何情况下显式返回0:
$ [ "1" = "0" ] && echo equal || :
$ echo $?
0
可能您试图复制的文件不可访问?你有没有在它的部分尝试过这个命令?也许只是试着运行cp config.py.j2 config.py看看是否有效。啊,这就是原因。命令按预期运行,但返回失败状态。添加
|
零件已成功。非常感谢。