Перейти к содержанию

Airflow за 15 минут

Самый быстрый способ запустить Airflow — официальный docker-compose от Apache. Скачал, запустил, работает. Подходит для знакомства с интерфейсом и простых экспериментов.


Что нужно заранее

  • Docker и Docker Compose
  • Linux, macOS или WSL на Windows
  • 4 ГБ оперативной памяти (минимум)

Запуск по шагам

1. Скачай docker-compose

Bash
mkdir airflow-local && cd airflow-local
curl -LfO 'https://airflow.apache.org/docs/apache-airflow/3.0.6/docker-compose.yaml'

2. Подготовь папки и .env

Bash
mkdir -p ./dags ./logs ./plugins ./config
echo -e "AIRFLOW_UID=$(id -u)" > .env

AIRFLOW_UID нужен, чтобы контейнер создавал файлы с правами твоего пользователя, а не root.

3. Инициализируй базу данных

Bash
docker compose up airflow-init

Дождись сообщения exited with code 0 — миграции применены, админ-аккаунт создан.

4. Запусти Airflow

Bash
docker compose up -d

Через 30–60 секунд UI доступен по адресу http://localhost:8080.

Логин и пароль по умолчанию: airflow / airflow.

5. Создай первый DAG

Сохрани файл в папку ./dags/:

Python
# dags/hello_airflow.py
import pendulum
from airflow import DAG
from airflow.operators.bash import BashOperator

with DAG(
    dag_id="hello_airflow",
    start_date=pendulum.datetime(2026, 1, 1, tz="UTC"),
    schedule=None,
    catchup=False,
    tags=["test"],
) as dag:
    BashOperator(
        task_id="say_hi",
        bash_command="echo 'Airflow работает!'"
    )

Через пару минут DAG появится в UI. Нажми кнопку запуска (▶) — задача выполнится и станет зелёной.


Что внутри docker-compose

Официальный файл поднимает:

Сервис Назначение
postgres База метаданных Airflow
redis Брокер сообщений для CeleryExecutor
airflow-webserver Веб-интерфейс (порт 8080)
airflow-scheduler Планировщик — отслеживает расписание и зависимости
airflow-worker Воркер — выполняет задачи (Celery)
airflow-triggerer Обработка асинхронных сенсоров
airflow-init Одноразовая миграция БД и создание админа

Это полная конфигурация

Официальный docker-compose включает CeleryExecutor, Redis и воркер. Для домашнего проекта это избыточно, но работает «из коробки».


Полезные команды

Bash
# Остановить Airflow
docker compose down

# Остановить и удалить данные (volumes)
docker compose down --volumes --remove-orphans

# Посмотреть логи
docker compose logs airflow-scheduler

# Зайти в контейнер
docker compose exec airflow-webserver bash

Ограничения подхода

Когда этого НЕ хватит

  • Нужны дополнительные Python-библиотеки (pandas, requests) → нужен кастомный Docker-образ
  • Логин airflow/airflow — не подходит для ничего, кроме локальных экспериментов
  • CeleryExecutor + Redis избыточны для одного сервера
  • Нет отдельного Postgres для данных (только metadata DB)

Для продакшн-подобной настройки с кастомным образом и двумя Postgres читай лёгкую версию Airflow.


Что запомнить

  • Официальный docker-compose — самый быстрый старт: 4 команды от нуля до работающего UI
  • DAG-файлы кладутся в ./dags/, Airflow подхватывает автоматически
  • Для реальной работы нужен кастомный образ и нормальные пароли
  • AIRFLOW_UID — обязательно для Linux/WSL, чтобы не было проблем с правами

Проверь себя


Источники