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