一尘不染

用于多命令执行的Docker CMD exec-form

docker

这是一个通过 shell-formCMD指令运行多个命令的愚蠢示例。我更喜欢使用 exec-form ,但是我不知道如何连接指令。

壳形式:

CMD mkdir -p ~/my/new/directory/ \
 && cd ~/my/new/directory \
 && touch new.file

执行表格:

CMD ["mkdir","-p","~/my/new/directory/"]
# What goes here?

有人可以提供 exec-form 的等效语法吗?


阅读 242

收藏
2020-06-17

共1个答案

一尘不染

简短的答案是,您不能将 exec形式的 命令链接在一起。

&&是Shell的功能,用于将命令链接在一起。实际上,当您在Dockerfile中使用此语法时,实际上是在利用Shell功能。

如果你想有一个与多个命令 EXEC形式 ,那么你确实使用了 EXEC形式 来调用外壳如下…

CMD ["sh","-c","mkdir -p ~/my/new/directory/ && cd ~/my/new/directory && touch new.file"]
2020-06-17