Dockerfile で使用できる命令(instruction)
大文字小文字の区別をしない。慣習として大文字を使用する。
- FROM
必ずこれから始める。FROMより前に置けるのはARGのみ。ARGはFROMの引数宣言。
FROM <image> [AS <name>]
FROM <image>[:<tag>] [AS <name>]
FROM <image>[@<digest>] [AS <name>]
-
ESCAPE
エスケープ文字の指定。デフォルトで「’’」が設定されている。 -
ENV
環境変数の置換。以下の命令に置いてサポートされる。- ADD
- COPY
- ENV
- EXPOSE
- LABEL
- USER
- WORKDIR
- VOLUME
- STOPSIGNAL
-
RUN
RUN <command> シェル形式
RUN ["executable", "param1", "param2"] exec形式
- CMD
CMD ["executable","param1","param2"] (exec 形式、この形式が推奨される)
CMD ["param1","param2"] ( ENTRYPOINT のデフォルト・パラメータとして)
CMD command param1 param2 (シェル形式)
- LABEL
LABEL <key>=<value> <key>=<value> <key>=<value> ...
- EXPOSE
コンテナの実行時に、どのポートをリッスンさせるかの指定
EXPOSE <port> [<port>...]
- ENV
環境変数の設定
ENV <key> <value> 一つの変数に一つの値を設定
ENV <key>=<value> ... 一度に複数の変数の値を設定
- ADD
<src>
に示されるファイル、ディレクトリ、リモートファイルURLをにコピーする。
ADD <src>... <dest>
ADD ["<src>",... "<dest>"] <dest> は絶対パスか、あるいは WORKDIR からの相対パスにより指定
- COPY
COPY <src>... <dest>
COPY ["<src>",... "<dest>"] 絶対パスか、あるいは WORKDIR からの相対パスにより指定
- ENTRYPOINT
複数記述されていても、最後の命令しか実行されない
ENTRYPOINT ["executable", "param1", "param2"] (exec 形式、推奨)
ENTRYPOINT command param1 param2 (シェル形式)
- VOLUME
VOLUME ["/data"]
VOLUME /data
- USER
USER <user>[:<group>]
USER <UID>[:<GID>]
- WORKDIR
ワークディレクトリの指定。WORKDIR が存在しないときは生成される。
その後に続く RUN、CMD、ENTRYPOINT、COPY、ADD の各命令において利用可能。
WORKDIR /a
WORKDIR b
WORKDIR c
RUN pwd ⇒ この結果は 「/a/b/c」
- ARG
変数を定義して、ビルド時にその値を受け渡す。
ARG <name>[=<default value>]
以下のARG変数は定義済み。
-
HTTP_PROXY
-
http_proxy
-
HTTPS_PROXY
-
https_proxy
-
FTP_PROXY
-
ftp_proxy
-
NO_PROXY
-
no_proxy
-
ONBUILD
イメージに対して取りが命令を追加する。そのイメージが他のビルドにおけるベースイメージとして用いられたときに実行される。 -
STOPSIGNAL
STOPSIGNAL signal
-
HEALTHCHECK
コンテナ内でヘルスチェックを行うコマンドを指定 -
SHELL デフォルトシェルの上書き設定
SHELL ["executable", "parameters"]
デフォルトのシェルは、
Linux 上では ["/bin/sh", "-c"]
Windows 上では["cmd", "/S", "/C"]