Airflow за 15 минут¶
Самый быстрый способ запустить Airflow — официальный docker-compose от Apache. Скачал, запустил, работает. Подходит для знакомства с интерфейсом и простых экспериментов.
Что нужно заранее¶
- Docker и Docker Compose
- Linux, macOS или WSL на Windows
- 4 ГБ оперативной памяти (минимум)
Запуск по шагам¶
1. Скачай docker-compose¶
mkdir airflow-local && cd airflow-local
curl -LfO 'https://airflow.apache.org/docs/apache-airflow/3.0.6/docker-compose.yaml'
2. Подготовь папки и .env¶
AIRFLOW_UID нужен, чтобы контейнер создавал файлы с правами твоего пользователя, а не root.
3. Инициализируй базу данных¶
Дождись сообщения exited with code 0 — миграции применены, админ-аккаунт создан.
4. Запусти Airflow¶
Через 30–60 секунд UI доступен по адресу http://localhost:8080.
Логин и пароль по умолчанию: airflow / airflow.
5. Создай первый DAG¶
Сохрани файл в папку ./dags/:
# 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 и воркер. Для домашнего проекта это избыточно, но работает «из коробки».
Полезные команды¶
# Остановить 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, чтобы не было проблем с правами
Проверь себя¶
Источники¶
- Airflow Documentation: Running Airflow in Docker — официальный гайд по docker-compose
- Airflow Documentation: Tutorial Fundamentals — основы написания DAG