Voici un exemple stupide d’exécution de plusieurs commandes via l’instruction CMD
dans Shell-form. Je préférerais utiliser le exec-form, mais je ne sais pas comment concaténer les instructions.
Forme de coquille:
CMD mkdir -p ~/my/new/directory/ \
&& cd ~/my/new/directory \
&& touch new.file
exec-form:
CMD ["mkdir","-p","~/my/new/directory/"]
# What goes here?
Quelqu'un peut-il fournir la syntaxe équivalente dans exec-form?
La réponse courte est que vous ne pouvez pas enchaîner des commandes au format formulaire exec.
&&
est une fonction du shell, qui permet d’enchaîner des commandes. En fait, lorsque vous utilisez cette syntaxe dans un fichier Docker, vous exploitez réellement les fonctionnalités du shell.
Si vous voulez avoir plusieurs commandes avec le formulaire exec, alors vous devez utiliser le formulaire exec pour appeler le shell comme suit ...
CMD ["sh","-c","mkdir -p ~/my/new/directory/ && cd ~/my/new/directory && touch new.file"]