Airflow es un director de orquesta que se asegura de que cada tarea se ejecute en el orden correcto y en el momento correcto.
Instalar Airflow
Documentación oficial
Puede revisar la documentación ofician en donde podemos ver los distintos enlaces de instalación segun las necesidades especificas https://airflow.apache.org/docs/apache-airflow/stable/installation/index.html.
Instalar con Docker
Nos guiaremos de:
- https://airflow.apache.org/docs/apache-airflow/stable/installation/index.html#using-production-docker-images
- https://airflow.apache.org/docs/docker-stack/build.html
Requisitos Previos
Debes tener instalado:
- Docker (v20+ recomendado)
- Docker Compose v2
- Al menos 4 GB de RAM disponibles
- Linux / WSL2 / macOS (Windows solo con WSL2)
Verifica:
docker --version
docker compose version
Crear directorio del proyecto
Para tener todo ordenado correctamente, vamos a crear el directorio del proyecto para ello usaremos los comandos mkdir y cd si lo realizas por terminal:
mkdir airflow-docker
cd airflow-docker
Descargar el docker-compose oficial
Airflow mantiene un docker-compose.yaml oficial.
curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.9.0/docker-compose.yaml'
(ajusta la versión si quieres otra)
Crear archivo .env
Airflow requiere definir el UID del usuario para evitar problemas de permisos.
echo -e "AIRFLOW_UID=$(id -u)" > .env
En Windows WSL funciona igual.
Crear directorios necesarias
Procedemos a crear directorio dentro de airflow-docker, ya que los requiere para almacenar datos fuera del contenedor docker
mkdir -p ./dags ./logs ./plugins ./config
Estas se montan como volúmenes dentro de los contenedores.
Estructura final:
airflow-docker/
├── dags/
├── logs/
├── plugins/
├── config/
├── docker-compose.yaml
└── .env
Inicializar la base de datos
Antes de levantar los servicios completos debes hacer init.
docker compose up airflow-init
Esto hace:
- Inicializa la metadata DB (PostgreSQL)
- Crea usuario admin
- Migra el esquema
Si todo sale bien, verás: Airflow init process done.
Levantar servicios
docker compose up -d
Esto levanta:
- airflow-webserver
- airflow-scheduler
- airflow-worker
- airflow-triggerer
- postgres
- redis
Acceder a la interfaz
Abrir navegador: http://localhost:8080
Usuario contraseña por defecto: airflow