도커파일에서 새롭게 추가된 문법들을 사용하는 방법
2025. 12. 24.
빌드킷(buildkit)이란
다양한 신규 기능을 갖춘 도커파일 프론트엔드 구현
공식문서에 빌드킷의 개요를 보면 빌드킷이 제공하는 기능 중에서 신규 기능을 갖춘 도커 파일이라고 적혀 있는데 이 포스트에서는 새로운 문법을 어떻게 사용하는지를 포스팅해보겠다.
기존 도커파일
기존 도커파일에서 많이 사용하는 명령어들은 위의 레퍼런스를 보면 확인할 수 있다.
FROM python:3.13
WORKDIR /usr/local/app
# Install the application dependencies
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
# Copy in the source code
COPY src ./src
EXPOSE 8080
# Setup an app user so the container doesn't run as the root user
RUN useradd app
USER app
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8080"]
보통 이런 형태로 작성되는데 버전을 명시해 줌으로써 새롭게 추가되는 기능들을 활용할 수 있다.
새로운 문법 사용하기
가장 최근에 출시된 버전은 1.19.0 버전이다.
적힌 내용을 보면 COPY와 ADD 지시어를 사용할 때 --exclude 플래그를 사용할 수 있다는 것이다. 원래는 실험적 기능이었다가 1.19.0 버전부터 자유롭게 사용할 수 있게 된 것이다.
최신 문법을 사용하기 위해서는 도커파일의 가장 상단에 버전을 명시해주면 된다.
# syntax=docker/dockerfile:1.19.0
FROM base-image
(...)
COPY --exclude=.env* ./ ./
위와 같이 버전을 명시해주고 COPY에 --exclude 플래그를 사용할 수 있다.
위와 같이 작성하면 프로젝트의 파일들을 복사할 때 .env 이름을 가진 파일들은 제외하고 복사해준다.
도커파일에 새롭게 추가되는 문법 및 패치를 보려면 릴리즈 노트를 확인하면 된다.(보러가기)