やりたいこと
Dockerfileの記載方法を整理する。
Dockerfileの書き方
- FROM
FROM {イメージ名}:{タグ}
でベースとなるイメージを記載する。
今回はPython3.6を利用している(dockerhub参照) - RUN
RUN {コマンド}
で実行したいコマンドを記載 - COPY
COPY {コピー元dir} {コピー先dir}
でホストマシンからコンテナ内にファイル(ディレクトリ)をコピーする。
コピー先に存在しないディレクトリの場合、自動作成してくれる。 - ENV
ENV {キー}={値}
で環境変数の指定 - ARG
ENV {キー}={デフォルト値(任意)}
で変数の指定 - WORKDIR
WORKDIR {ディレクトリパス}
で作業ディレクトリを変更する。 - CMD
CMD["実行ファイル", "パラメータ1", ..."パラメータN"]
でコンテナ実行時のデフォルトコマンドを指定する。 複数ある場合は最後のCMDを実行する。 - マルチステージビルド
環境毎にイメージを分けたい場合、fromを複数記載ことで実現可能である。
--target development
のようにbuild時にオプションで指定することによって指定した環境でビルドできる。
FROM python:3.6 AS base ENV env=dev ARG fuga=fuga RUN pip install --upgrade pip COPY . /app CMD["python3", "main.py"] FROM base AS development ENV env=dev FROM base AS production ENV env=prod