설명
서로 다른 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