커스텀 Dockerfile 문법

커스텀 Dockerfile 문법 (Custom Dockerfile syntax)

Dockerfile의 # syntax 지시자(directive)를 사용해, Dockerfile을 빌드할 때 사용할 Dockerfile 문법(프론트엔드) 구현을 지정할 수 있어요. 커스텀 프론트엔드를 쓰면 Docker 데몬을 업데이트하지 않고도 최신 기능과 버그 수정을 쓸 수 있어요.

출처: 문서

본문

Dockerfile 프론트엔드 (Dockerfile frontend)

Dockerfile의 # syntax 지시자(directive)를 사용해 사용할 특정 이미지를 지정할 수 있어요:

# syntax=[remote image reference]

예를 들어:

# syntax=docker/dockerfile:1
# syntax=docker.io/docker/dockerfile:1
# syntax=example.com/user/repo:tag@sha256:abcdef...

또는 빌드 인자로 커맨드 라인에서 프론트엔드 이미지 참조를 설정할 수도 있어요:

$ docker build --build-arg BUILDKIT_SYNTAX=docker/dockerfile:1 .

이것은 Dockerfile을 빌드하는 데 사용되는 Dockerfile 문법의 위치를 정의해요. BuildKit 백엔드는 Docker 이미지로 배포되고 컨테이너 샌드박스 환경 안에서 실행되는 외부 구현을 자연스럽게 사용할 수 있게 해 줘요.

커스텀 Dockerfile 구현을 사용하면 다음과 같은 것들이 가능해져요:

  • Docker 데몬을 업데이트하지 않고도 버그 수정을 자동으로 받기
  • 모든 사용자가 같은 구현으로 Dockerfile을 빌드하도록 보장
  • Docker 데몬 업데이트 없이 최신 기능 사용
  • Docker 데몬에 통합되기 전에 새 기능이나 서드파티 기능을 시험
  • 대체 빌드 정의를 사용하거나 직접 만들기
  • 커스텀 기능을 가진 나만의 Dockerfile 프론트엔드 구축

BuildKit은 기본 제공되는 Dockerfile 프론트엔드를 포함하고 있지만, 모든 사용자가 같은 버전을 쓰도록 하려면 외부 이미지를 사용하는 것이 권장돼요.

더 알아보기 (Learn more)