這是一個通過shell形式的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中提供等效的語法嗎?
最佳答案
簡短的回答是,你不能在exec表單中鏈接命令.
&安培;&安培;是shell的一個函數,用於將命令鏈接在一起.實際上,當您在Dockerfile中使用此語法時,實際上是在利用shell功能.
如果你想使用exec表單有多個命令,那么你已經使用exec表單來調用shell,如下所示……
CMD ["sh","-c","mkdir -p ~/my/new/directory/ && cd ~/my/new/directory && touch new.file"]