Docker CMD exec-form用于执行多个命令
这是一个愚蠢的例子,通过CMD
指令以shell的forms运行多个命令。 我宁愿使用execforms ,但我不知道如何连接指令。
壳的forms:
CMD mkdir -p ~/my/new/directory/ \ && cd ~/my/new/directory \ && touch new.file
EXECforms:
CMD ["mkdir","-p","~/my/new/directory/"] # What goes here?
有人可以用execforms提供等效的语法吗?
简短的回答是,你不能以exec的forms连接命令。
&&
是shell的一个函数,用来将命令链接在一起。 实际上,当你在Dockerfile中使用这个语法时,实际上是利用了shell的function。
如果你想用execforms有多个命令,那么你可以使用execforms来调用shell,如下所示:
CMD ["sh","-c","mkdir -p ~/my/new/directory/ && cd ~/my/new/directory && touch new.file"]