숫자로 참조하는 빌드 단계

COPY --from에서 역할이 드러나는 단계 이름을 사용하세요.

설명

COPY --from=0처럼 빌드 단계를 숫자로 참조하는 것은 유효하지만, 앞에 단계를 추가하거나 순서를 바꾸면 참조 대상이 달라질 수 있습니다. 이름을 사용하면 단계 순서에 대한 의존성을 줄일 수 있습니다.

잠재적 영향

단계 순서가 바뀐 뒤 잘못된 파일을 복사하거나 빌드가 실패할 수 있습니다.

해결 방법

참조할 FROM 단계에 AS builder처럼 고유한 이름을 붙이고 COPY --from=builder로 참조하세요.

예시

예시는 같은 산출물을 숫자와 이름으로 참조합니다. GO_BUILD_IMAGE와 RUNTIME_IMAGE에는 지원되는 이미지 참조를 지정하고, 빌드 결과의 플랫폼과 런타임 라이브러리가 실행 이미지와 호환되는지 확인하세요.

변경 전

dockerfile
ARG GO_BUILD_IMAGE
ARG RUNTIME_IMAGE
FROM ${GO_BUILD_IMAGE}
WORKDIR /src
COPY . .
RUN go build -o app .

FROM ${RUNTIME_IMAGE}
COPY --from=0 /src/app /app/app
CMD ["/app/app"]

변경 후

dockerfile
ARG GO_BUILD_IMAGE
ARG RUNTIME_IMAGE
FROM ${GO_BUILD_IMAGE} AS builder
WORKDIR /src
COPY . .
RUN go build -o app .

FROM ${RUNTIME_IMAGE}
COPY --from=builder /src/app /app/app
CMD ["/app/app"]

참조