以下をファイルに書いて、それをdocker buildすることでイメージファイルができるらしい。
FROM
どのイメージを基にするか。
これを最初に書かなければならない。
LABEL
作成者情報等メタデータの追加。
RUN
build時、イメージに対してコマンドを実行する。次のステップではコマンド実行後のイメージが使われる。
CMD
buildされたイメージが何をするものかを書く。build時には影響しない。
Dockerfileの中に一つだけ書く(沢山書いても最後のCMDが使われる)
EXPOPSE
実行時にコンテナがlistenするポート指定。
ENV
build時+実行時の環境変数設定。
ADD
ディレクトリやURLで指定したファイルをイメージのファイルシステム上にコピーする。
もしもsrcが圧縮されていたら展開してディレクトリとしてコピーされる。
ワイルドカードも使える。
COPY
ディレクトリやファイルをイメージのファイルシステム上にコピーする。ワイルドカードも使える。
ENTRYPOINT
実行可能なコンテナとして設定するために使う。
CMDとの組み合わせやどういう引数を与えるかによって動きが変わるので詳細は公式のドキュメント1参照。
VOLUME
マウントポイントを作る。
USER
ユーザーを設定する。イメージやステップを実行する権限が設定されたユーザーにないときはrootで実行される。
WORKDIR
作業ディレクトリを設定する。
ARG*
build時にユーザーから渡される変数を定義できる。
ONBUILD
後で実行されるトリガーをイメージに追加する。もしこれを使うのであればFROM直後に書く必要あり。よくわからんので使ってみる。
STOPSIGNAL
コンテナを終了するためのシステムコールシグナルを設定する。
HEALTHCHECK
コンテナが正常動作しているかをDockerが確認する方法を記す。
SHELL
デフォルトのシェルを上書きする