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

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

壳的形式:

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

EXEC形式:

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

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

最佳答案
简短的回答是,你不能在exec表单中链接命令.

&安培;&安培;是shell的一个函数,用于将命令链接在一起.实际上,当您在Dockerfile中使用此语法时,实际上是在利用shell功能.

如果你想使用exec表单有多个命令,那么你已经使用exec表单来调用shell,如下所示……

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

 

posted @ 2020-02-05 15:16  30岁再次出发  阅读(2001)  评论(0编辑  收藏  举报