Dockerfileとは?
- Dockerコンテナの基となる、Dockerイメージをテキスト化したもの
- DockerfileからDockerイメージを作ることができる
- 内容としては以下等をDockerfile命令という形で指定している
- そのコンテナのベースとなるイメージ
- そのイメージ、コンテナで実行したいコマンド
- ホストOSからコンテナにコピーしたいファイル
- 環境変数
- 例
FROM ubuntu:20.04
RUN apt-get update -y && \
apt-get install -y nginx
CMD ["nginx", "-g", "daemon off;"]
Dockerfile命令
FROM
- 基になるイメージを指定する
- Dockerfileの最初の命令として使用する
- 例
- FROM ubuntu:20.04
RUN
- イメージのビルド中にじっこうするコマンドを指定する。通常、ソフトウェアのインストールや設定変更に使われる
- 例
- RUN apt-get update && apt-getinstall -y curl
CMD
- コンテナが起動する際に実行するデフォルトのコマンドを指定する
- 例
- CMD ["nginx","-g","daemon off;"]
COPY
- ホストシステムからDockerイメージにファイルやディレクトリをコピーする
- 記法
- COPY {ホストのファイル} {コンテナのパス}
- 例
- COPY conf /etc/httpd/conf
ADD
- ホストシステムだけでなく、インターネットからもファイルをイメージに追加することができる
- COPYの強化版ではあるが、公式はCOPYの使用を推奨している
- →そもそもの考え方として、疎結合性を大事にしているから
ENV
- Dockerイメージが生成されるタイミングで環境変数を設定する
- DBのユーザー名
- 動作環境
- etc
- 固定値になってしまう(ユーザーによって変更できない)点に注意
- 記法
- ENV {キー値} {バリュー値}
- 例
- ENV APP_ENV="production"
参照