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
...
더 알아보기
- 중복된 대상 플랫폼 지정 (RedundantTargetPlatform): 중복 플랫폼 지정 규칙을 확인해요.
- 빌드 체크 개요: 기타 빌드 체크 규칙을 살펴봐요.