这是通过 shell-form 中的CMD
指令运行多个命令的愚蠢示例。我更喜欢使用 exec-form ,但我不知道如何连接说明。
壳形式:
CMD mkdir -p ~/my/new/directory/ \
&& cd ~/my/new/directory \
&& touch new.file
EXEC形式:
CMD ["mkdir","-p","~/my/new/directory/"]
# What goes here?
有人可以在 exec-form 中提供等效语法吗?
答案 0 :(得分:26)
简短的回答是,您不能将命令链接在 exec表单中。
&&
是shell的一个函数,用于将命令链接在一起。实际上,当您在Dockerfile中使用此语法时,实际上是在利用shell功能。
如果你想使用 exec表单拥有多个命令,那么你已经使用 exec表单来调用shell,如下所示......
CMD ["sh","-c","mkdir -p ~/my/new/directory/ && cd ~/my/new/directory && touch new.file"]