FROM 플랫폼 플래그 상수 사용 금지

FROM 플랫폼 플래그 상수 사용 금지 (FromPlatformFlagConstDisallowed)

빌드 체크 규칙 중 하나로, FROM --platform에 상수 값을 지정한 경우를 알려줘요. 상수 플랫폼을 지정하면 이미지가 한 대상 플랫폼에서만 빌드되므로 멀티 플랫폼 이미지를 만들 수 없어요.

출처: 문서

본문

Dockerfile FROM 지시어에 --platform을 지정하면 이미지가 오직 한 대상 플랫폼에서만 빌드되도록 강제해요. 이렇게 하면 이 Dockerfile로 멀티 플랫폼 이미지를 만들 수 없고, --platform에 지정된 것과 같은 플랫폼에서만 빌드해야 해요.

권장하는 방식은 다음과 같아요.

  • Dockerfile에서 FROM --platform을 생략하고 명령줄의 --platform 인자를 사용한다.
  • --platform 인자에 $BUILDPLATFORM 같은 변수 조합을 사용한다.
  • 스테이지 이름에 플랫폼, OS 또는 아키텍처 이름을 넣어 플랫폼 전용 지시어만 담았음을 나타낸다.

출력 메시지

FROM --platform flag should not use constant value "linux/amd64"

예시

❌ 나쁜 예: --platform에 상수 인자를 사용했어요.

FROM --platform=linux/amd64 alpine AS base
RUN apk add --no-cache git

✅ 좋은 예: 기본 플랫폼을 사용해요.

FROM alpine AS base
RUN apk add --no-cache git

✅ 좋은 예: 메타 변수를 사용해요.

FROM --platform=${BUILDPLATFORM} alpine AS base
RUN apk add --no-cache git

✅ 좋은 예: 대상 아키텍처가 있는 멀티 스테이지 빌드에서 사용해요.

FROM --platform=linux/amd64 alpine AS build_amd64
...

FROM --platform=linux/arm64 alpine AS build_arm64
...

FROM build_${TARGETARCH} AS build
...

더 알아보기