コンテナで実行するコマンドを決める構文
DockerfileではCMDとENTRYPOINTがあり、構文が微妙に違うけどそもそも何が違うの?という話を整理しました。
まずポイントとして1つのDockerfileにCMDとENTRYPOINTは1度のみ。CMDとENTRYPOINTの併用はOK。
要はCMDを二行書いたら実行されるのは二行目という感じ。
で、一番の違いですが「コンテナ実行時に上書きができるか否か」というのが大きなポイント。
ENTRYPOINTで指定されているコマンドは上書きができない。逆にCMDならできる。
なので、併用が活きてきます。要はEntrypointでコマンドを書いてCMDに引数を書いておくという戦法。なるほどね~