TL;DR マルチステージビルドな Dockerfile で ARG を使う場合は、スコープがステージ内に閉じていることに注意が必要です!ちゃんと各ステージごとに使う ARG を宣言しましょう! また、複数のステージで使う ARG にデフォルト値があるのなら、グローバルな ARG を定義してそこにデフォルト値を記載しましょう! こんな感じで作ればオッケーです! # 各ステージで共通して利用する ARG にデフォルト値があるのなら、最初の FROM より前に定義する。 ARG YOUR_ARG="Default value" FROM alpine:latest as first_stage # ARG は、利用する各ステージごとに宣言する必要がある。 ARG YOUR_ARG RUN echo "1st stage: ${YOUR_ARG}" FROM alpine:latest as s