2026年10月18日
2026年10月18日
DockerfileでARGを使ってビルド引数を渡す方法
はじめに
DockerfileでARGを使用することで、ビルド時に必要なパラメータを動的に設定することができます。これにより、コンテナイメージのカスタマイズが容易になり、環境によって異なる設定を行うことが可能になります。
症状・背景
- バージョン管理が必要なアプリケーションやライブラリを含むコンテナイメージを作成する必要がある場合
- コンテナ間で共有するパラメータを一元的に管理したいとき
- 容量制限のあるホスト環境で必要なパッケージをインストールする必要がある場合
手順・設定方法
ステップ1: ARGを定義
# イメージ名とバージョンを指定するARGを定義
ARG IMAGE_NAME=example-image
ARG IMAGE_VERSION=v1.0.0
# これらの値はビルド時に環境変数として渡すことができます
ステップ2: 使用例
# ARGを使用して、コンテナ内で必要とされるパラメータを設定します
FROM $IMAGE_NAME:$IMAGE_VERSION
# パッケージ管理ツールのインストール
RUN apt-get update && \
apt-get install -y <パッケージ名>
ステップ3: 実践的な例
# システム依存のパスをARGで指定します
ARG SYSTEM_PATH=/usr/local/bin
# このPATHがコンテナ内で使用されます
ENV PATH=$SYSTEM_PATH:$PATH
# 特定のバージョンのパッケージをインストールします
RUN apt-get install -y <パッケージ名>=$<バージョン>
ステップ4: トラブルシュート/監視
# Docker BuildコマンドでARGを渡します
docker build --build-arg IMAGE_NAME=my-image --build-arg IMAGE_VERSION=v1.0.0 .
# ビルド結果やログを確認します
注意事項
- ARGはビルド時にしか使用できません。実行時に環境変数として参照することはできません。
- 大きな値やパスなどを渡す場合は、引数の長さ制限に注意してください。
- 安全性上、機密情報をARGで渡すことは避けるべきです。
まとめ
1. ARGの定義: Dockerfile内でARGを定義します。これはビルド時に使用されるパラメータです。
2. 実際の使用例: 定義したARGを使用してコンテナイメージを作成します。
3. 実践的な注意点: ARGはビルド時限定で、実行時は環境変数として参照することはできません。
関連記事: