커스텀 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 프론트엔드를 포함하고 있지만, 모든 사용자가 같은 버전을 쓰도록 하려면 외부 이미지를 사용하는 것이 권장돼요.