컨테이너·워크플로우 자동화/DocKer 기본 및 활용

Airflow × Docker Compose 환경에서 Dockerfile 작성 후 실행 흐름 정리

Data Jun 2026. 2. 24. 14:46

Airflow를 Docker Compose 기반으로 운영할 때, Selenium·Chromium과 같은 시스템 패키지가 필요하다면 공식 이미지를 그대로 사용하는 방식에는 한계가 있습니다. 이 경우 Dockerfile을 작성하여 커스텀 이미지를 빌드하는 구조로 전환해야 합니다.

 

핵심 개념은 다음과 같습니다.
Docker Compose는 컨테이너를 실행하는 도구이고, Dockerfile은 실행에 필요한 이미지를 정의하는 설계도입니다. 즉, 실행 환경이 바뀌면 이미지를 다시 만들어야 합니다!

 

1. Dockerfile 작성

docker-compose.yml과 동일한 위치에 Dockerfile을 생성합니다.

FROM apache/airflow:2.6.2

USER root

# 시스템 패키지 설치 (예: Selenium용 Chromium)
RUN apt-get update && apt-get install -y \
    chromium \
    chromium-driver \
    && apt-get clean

USER airflow

# Python 패키지 설치
RUN pip install --no-cache-dir \
    selenium

시스템 패키지는 root 권한이 필요하므로 USER를 root로 변경하고, 설치 후 다시 airflow 유저로 전환합니다.

 

2. docker-compose.yml 수정

기존 image 설정을 주석 처리하고 build를 활성화합니다.

# image: apache/airflow:2.6.2
build: .

이렇게 하면 모든 Airflow 서비스(webserver, scheduler, worker)가 해당 Dockerfile 기반 이미지로 실행됩니다.

 

3. 이미지 빌드 및 실행

docker compose down
docker compose build
docker compose up -d

여기서 중요한 점은 Dockerfile이 변경될 때만 build가 필요하다는 것입니다.
DAG 코드나 Python 로직만 수정하는 경우에는 재빌드가 필요하지 않습니다.

 

4. 실행 흐름 정리

  • Dockerfile 수정 → build 필요
  • 단순 DAG 수정 → build 불필요
  • 이미지 변경 없음 → up 또는 restart만 수행

이미지는 설계도이고, 컨테이너는 실행 결과입니다.
설계도가 바뀌지 않으면 다시 만들 필요가 없습니다.