구식 키=값 형식
구식 키=값 형식 (LegacyKeyValueFormat)
빌드 체크 규칙 중 하나로, 환경 변수나 빌드 인자를 선언할 때 구식의 공백 분리(ENV key value) 형식을 쓴 경우를 알려줘요. 올바른 형식은 ENV key=value처럼 등호(=)로 키와 값을 구분하는 방식이에요.
출처: 문서
본문
Dockerfile에서 환경 변수와 빌드 인자를 선언하는 올바른 형식은 ENV key=value와 ARG key=value이고, 변수 이름(key)과 값(value) 사이를 등호(=)로 구분해요. 역사적으로는 키와 값 사이에 공백 구분자(예: ARG key value)도 지원됐지만, 이 구식 형식은 사용이 중단됐고 등호 형식만 사용해야 합니다.
출력 메시지
"ENV key=value" should be used instead of legacy "ENV key value" format
예시
❌ 나쁜 예: 변수 키와 값에 공백 구분자를 사용했어요.
FROM alpine
ARG foo bar
✅ 좋은 예: 키와 값을 등호로 구분해요.
FROM alpine
ARG foo=bar
❌ 나쁜 예: 공백 구분자를 쓰는 여러 줄 변수 선언이에요.
ENV DEPS \
curl \
git \
make
✅ 좋은 예: 등호를 쓰고 값을 따옴표로 감싸요.
ENV DEPS="\
curl \
git \
make"
여러 줄 구식 문법을 key=value 형식으로 바꿀 때는 앞쪽 공백에 주의하세요. 구식 형식에서는 연속 줄의 앞쪽 공백이 값에 포함돼요. 따옴표로 감싼 값의 경우에도 따옴표 안의 앞쪽 공백은 보존됩니다. 값에 앞쪽 공백을 넣고 싶지 않다면 새 형식으로 다시 쓸 때 제거해야 해요.
ENV DEPS="\
curl \
git \
make"
더 알아보기
- 빌드 체크 개요: 기타 빌드 체크 규칙을 살펴봐요.
- 환경 변수 관련 규칙: ARG/ENV의 보안 관련 규칙을 확인해요.