ARG
ARG コマンドはその後のDockerfileで利用される実行時引数(build-args)を準備することができるコマンドです。
FROM ubuntu:18.04
ARG text
RUN echo Hello $text
上記のようにDockerfileを編集し
docker build -t [ユーザー名]/arg_sample:1.0 --build-arg text=World! .
上記のコマンドでイメージを作成してみましょう。
すると、実行時に渡されたtext=World!が実行時引数として利用されて、RUN echo Hello $TEXT の実行時に Hello World!と表示されます。
ARGのデフォルト値
docker build -t [ユーザー名]/arg_sample:1.0 .
上記のように、build-arg を設定せずに実行すると引数は空となり、 RUN echo Hello $TEXT の実行時に Hello とだけ表示されます。
ARG コマンドでは実行時引数が渡されてない場合のデフォルト値を設定することも可能です。
FROM ubuntu:18.04
ARG text="how low?"
RUN echo Hello $text
と編集してから、再度
docker build -t [ユーザー名]/arg_sample:1.0 .
として実行すると、デフォルト値が利用され、RUN echo Hello $TEXT の実行時に Hello how low? と表示されます。
まとめ
ARG コマンドを利用することで、同じDockerfileであっても、渡す引数によって異なるイメージを構築することが可能です。ユーザー名やパスワードなど、構築時に任意の値を設定させたい箇所で効果的に活用しましょう。