説明
異なる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