Docker / 컨테이너

Dockerfile 유효성 검사기

행 번호로 문제를 찾고 단계 경계를 살핀 뒤 서식 변경을 검토하세요.

Dockerfile 유효성 검사기

Dockerfile 원본

결과

브라우저 메모리에서 처리합니다. 빌드나 레지스트리 요청을 보내지 않습니다.

서식 옵션

결과가 오래되었습니다. 다시 검사한 뒤 내보내세요.

커밋 전 레시피를 검토할 때 Dockerfile 유효성 검사기는 빌드 단계와 실행 단계의 경계를 보여 줍니다. 원본을 그대로 두고 진단과 서식 결과를 나란히 볼 수 있습니다.

Dockerfile 구문 검사와 멀티스테이지 빌드 탐색을 함께 제공합니다. Dockerfile 작성 중 헷갈리는 Dockerfile 명령어의 역할을 확인할 수 있지만, 실제 이미지 크기나 빌드 성공 여부를 계산하지는 않습니다.

Dockerfile 유효성 검사기를 쓰는 이유

단계에서 원본으로 이동

Dockerfile 유효성 검사기는 이름 없는 단계도 FROM 순서대로 표시합니다. 단계 카드를 누르면 해당 선언으로 이동하므로 복사한 산출물의 출처를 검토하기 쉽습니다.

원본 문서와 세 단계 카드 중 서로 대응하는 부분을 강조한 그림.

입력을 덮어쓰기 전에 검토

서식 결과는 별도 영역에 표시됩니다. 변경 행 수와 들여쓰기를 확인한 뒤 적용하고, 필요하면 이전 입력과 결과를 한 번에 복원할 수 있습니다.

기존 연속 행과 서식 결과 사이에 적용 및 복원 화살표가 있는 그림.

검사 시점과 변경 범위 확인

01

단계 목록 열기

예제에는 빌드와 실행 단계가 있습니다. 단계 번호는 0부터 시작하며 클릭하면 FROM으로 이동합니다. 명령어를 펼치면 원문과 역할을 함께 볼 수 있습니다.

02

자동 검사를 잠시 끄기

입력을 멈춘 뒤 350밀리초 후 검사합니다. 자동 검사를 끄면 대기 중 작업이 취소됩니다. 수동 모드에서는 버튼 또는 Ctrl/Cmd + Enter로 실행하며, 수정 즉시 이전 결과 내보내기는 비활성화됩니다.

03

서식 미리 보기 적용

기본 연속 행 들여쓰기는 공백 4개입니다. 공백 2개나 탭으로 바꿀 수 있으며, 미리 보기 이후 입력이 바뀌면 이전 미리 보기를 적용할 수 없습니다.

진단에서 파일 구조까지

행과 열이 있는 진단

오류와 경고를 구분하고 원본 위치로 이동할 수 있습니다. 진단 분류는 한국어이며, 펼친 상세 정보에는 엔진의 영어 메시지와 코드가 표시됩니다.

명령어 역할 확인

ARG는 빌드 변수이고 ENV와 범위가 다릅니다. EXPOSE는 포트를 선언할 뿐 외부에 공개하지 않습니다. 도구는 이러한 차이를 설명하고 명령 내용을 실행하지 않습니다.

heredoc 보존

주석과 명령어 순서를 보존하고 heredoc 종료 누락을 오류로 표시합니다. JSON처럼 보이지만 문자열 배열이 아닌 인수는 셸 형식을 의도했는지 확인하도록 경고합니다.

결과를 해석할 때의 한계

빌드와 보안 검사 제외
RUN 실행, 이미지 다운로드, 의존성 검사, 빌드 컨텍스트 읽기는 하지 않습니다. 파일 존재 여부, 이미지 가용성, 취약점이나 보안 표준 준수는 이 결과로 확인할 수 없습니다.
제한된 규칙 집합
Hadolint, ShellCheck 또는 전체 BuildKit 검사와 같지 않습니다. 사용자 정의 프런트엔드는 지원 범위를 벗어날 수 있습니다. ignore 주석으로 일부 진단이 숨겨지면 별도 경고를 표시합니다.
의미를 바꾸는 최적화 제외
명령어 앞 공백, 공백뿐인 행, 연속 행의 들여쓰기를 정리합니다. RUN 병합, 패키지 정렬, 대소문자 변경은 하지 않습니다. COPY --from은 외부 이미지를 참조할 수 있습니다.
한 파일과 명시적 제한
텍스트 입력은 UTF-16 코드 단위 131072개와 2000행까지 받습니다. 초과 입력을 자르지 않고 처리를 중단합니다. 목록은 50개씩 표시하고 내보내기는 LF 줄바꿈으로 전체 서식 결과를 포함합니다.

Dockerfile 유효성 검사기 질문과 답변

커밋하기 전에 Dockerfile 오류를 확인할 수 있나요?

가능합니다. 지원되는 구문과 인수 오류를 커밋 전에 확인하고 해당 행으로 이동할 수 있습니다. 다만 실제 빌드 환경을 재현하지 않으므로 진단이 없어도 별도의 빌드와 테스트가 필요합니다.

비효율적인 명령어를 찾아 이미지 크기를 줄일 수 있나요?

이 페이지는 명령어 효율이나 이미지 크기를 분석하지 않습니다. 단계 구조를 확인하는 데는 도움이 되지만, 용량을 줄이려면 실제 이미지 레이어와 빌드 결과를 측정해야 합니다.

Dockerfile 검사로 보안 표준 준수를 확인할 수 있나요?

확인할 수 없습니다. 취약점 데이터베이스, 이미지 내용, 조직 정책을 검사하지 않으므로 별도의 보안 분석과 정책 검증을 진행해야 합니다.

CMD와 ENTRYPOINT는 어떻게 다른가요?

ENTRYPOINT는 컨테이너에서 실행할 프로그램을 정하고, CMD는 기본 명령 또는 인수를 제공합니다. 실행 방식과 인수 덮어쓰기 동작이 다르므로 이 도구는 두 명령어를 자동으로 바꾸지 않습니다.

COPY와 ADD는 어떤 차이가 있나요?

COPY는 컨텍스트나 다른 단계에서 파일을 복사하며, ADD에는 압축 파일 및 원격 소스를 처리하는 추가 의미가 있습니다. 실제 목적에 맞춰 선택해야 하고 서식 도구가 대신 선택하지 않습니다.

더 궁금한 점이 있나요?

다음 변경 검토하기

Dockerfile 유효성 검사기로 돌아가 진단이나 단계 경계를 확인하고 현재 미리 보기가 의도와 맞을 때 내보내세요.

정적 검사는 검토를 돕습니다. 실제 빌드는 별도로 확인하세요.