概要
Dockerfileに記述できるCMDとENTRYPOITNTは、どちらも「コンテナ起動時に実行するコマンド」を記述するための命令である。
どちらもDockerfileに1つだけ記述することができる。
CMDとENTRYPOITNTの違いは「コンテナ起動時の引数やcompose.yamlで上書きできるかどうか」である。
- CMD: compose.yamlなどで上書き可能
- ENTRYPOITNT: compose.yamlなどで上書き不可
DockerfileでのCMD命令の記述例
FROM python:3.10
WORKDIR /usr/src/app
RUN pip install flask==2.3.3
CMD ["flask", "run", "--host=0.0.0.0"]
上記の場合、CMD命令が使われているので、flask run --host=0.0.0.0
はcompose.yamで上書きされる可能性がある。