ビルドステージ名の重複

FROMステージごとに一意の名前を指定してください。

説明

異なるFROM ... AS <name>ステージに同じ名前を付けると、ビルダーが参照先を一意に特定できず、エラーが発生します。

想定される影響

名前の重複はビルドの失敗につながり、COPY --fromで意図したコピー元も分かりにくくなります。

対処方法

各ステージに役割が分かる一意の名前を付け、参照するCOPY --fromやFROMも合わせて修正してください。

例

ステージ名を比較する抜粋で、ソースファイルや依存関係の準備は省略しています。GO_BUILD_IMAGEにはプロジェクトと互換性のあるサポート対象のGoビルドイメージを指定してください。

変更前

dockerfile
ARG GO_BUILD_IMAGE
FROM ${GO_BUILD_IMAGE} AS build
RUN go build -o /out/app .

FROM node:22 AS build
RUN npm ci

変更後

dockerfile
ARG GO_BUILD_IMAGE
FROM ${GO_BUILD_IMAGE} AS go-builder
RUN go build -o /out/app .

FROM node:22 AS web-builder
RUN npm ci

参考資料