miuuuu’s blog

ひよこからにわとりになりたいエンジニアによる日々の記録

DockerfileのCMD、docker-compose.yamlのcommandに、複数コマンドを複数行で書く

dockerコンテナを起動するときのコマンドを、複数コマンドまたは複数行で書く書き方のメモ。

複数コマンドを複数行で書く

Dockerfile

CMD sh -c “hogehogehoge && fugafugafuga && \
    piyopiyopiyopiyopiyopiyopiyopiyopiyo"

docker-compose.yaml

Command: > 
    sh -c "hogehogehoge && fugafugafuga &&
    piyopiyopiyopiyopiyopiyopiyopiyopiyo"

まとめ

  • DockerfileのCMDもdocker-compose.yamlのcommandも、1ファイル一回しか書けない
  • 複数コマンドを実行したいときは、sh -c “hoge && fuga" のようにする
  • Dockerfileに複数行で書きたい場合は、(CMDに限らず) 行末に \ をつける
  • docker-compose.yamlに複数行で書きたい場合は、Command: > として行末には何もつけず改行する