No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Posibles configuraciones

9/29
Recursos

Aportes 9

Preguntas 6

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

⚠️ Recuerden que si quieren cambiar el puerto deben cambiar el primero que hace referencia a su maquina y no al container

...
ports:
      - 8081:8080
...

En esta clase aprendemos de forma fundamental a cambiar el archivo airflow.cfg ubicado en el Working Directory del contenedor “Webserver” acedemos al bash del contenedor usando docker y el id esto para modificar directamente el archivo

docker exec -it tu_id bash

otra forma es usando el docker-compose.yml, si el archivo que descargamos. En este yml editamos y agregamos variables como

AIRFLOW__CORE__LOAD_EXAMPLES: 'false'
AIRFLOW__SCHEDULER__DAG_DIR_LIST_INTERVAL: 100

esto para evitar que nos descargue los ejemplos de airflow y cambiar el tiempo de espera que tiene la interfaz para mostrarte los DAGs o ficheros que has creado.

adicionalmente podemos cambiar el puerto donde queremos deplegar la interfaz del airflow, aqui un pequeno cometario, como lo hace el companero R0Y3R, aqui hay que cambiar el primer puerto ya que este puerto es el que hace referencia al puerto de tu maquina local y el segundo al puerto del contenedor de docker

ports:
      - 8085:8080

por ultimo, abordamos los volumenes, donde se comparten los ficheros creados en nuestra carpeta con el contenedor

volumes:
    - ./dags:/opt/airflow/dags
    - ./logs:/opt/airflow/logs
    - ./plugins:/opt/airflow/plugins

Saludos

Esta clase en clave, en ninguna parte de la documentación de airflow te dicen donde está la sección de configuraciones

Instalación en ubuntu.

Debemos instalar previamente docker compose en nuestro equipo para ello puedes usar: https://www.digitalocean.com/community/tutorials/how-to-set-up-laravel-nginx-and-mysql-with-docker-compose-on-ubuntu-20-04

Luego use estos comandos para instalar:
mkdir airflow
mkdir -p ./dags ./logs ./plugins
echo -e “AIRFLOW_UID=$(id -u)” > .env
curl https://airflow.apache.org/docs/apache-airflow/2.3.3/docker-compose.yaml --output docker-compose.yml
docker-compose up

Con esta variable AIRFLOW\_\_SCHEDULER\_\_DAG\_DIR\_LIST\_INTERVAL evito reiniciar el ariflow si he añadido dags en mi directorio actual? Es que en mi caso si creo un dag nuevo en la carpeta dag no aparece hasta que no reinicie el airflow
Aquí tienes varias configuraciones posibles para ejecutar Apache Airflow con Docker según tus necesidades. Cada configuración aborda diferentes escenarios y requisitos. ### **Configuración Básica** Ideal para pruebas locales y proyectos pequeños. #### Requisitos: * Archivo `docker-compose.yaml` básico. * Usuario local configurado. version: '3.7' services: airflow-webserver: image: apache/airflow:2.10.3 container\_name: airflow\_webserver ports: \- "8080:8080" environment: \- AIRFLOW\_\_CORE\_\_LOAD\_EXAMPLES=False \- AIRFLOW\_\_WEBSERVER\_\_WORKER\_REFRESH\_BATCH\_SIZE=5 volumes: \- ./dags:/opt/airflow/dags \- ./logs:/opt/airflow/logs \- ./plugins:/opt/airflow/plugins depends\_on: \- airflow-init airflow-scheduler: image: apache/airflow:2.10.3 container\_name: airflow\_scheduler depends\_on: \- airflow-webserver airflow-init: image: apache/airflow:2.10.3 container\_name: airflow\_init entrypoint: \["airflow", "db", "init"] volumes: \- ./dags:/opt/airflow/dags \- ./logs:/opt/airflow/logs \- ./plugins:/opt/airflow/plugins ### **Configuración con Base de Datos Externa** Si necesitas usar una base de datos más robusta (como PostgreSQL) en lugar de SQLite. #### Requisitos: * Servicio de PostgreSQL. * Credenciales configuradas. version: '3.7' services: postgres: image: postgres:13 container\_name: airflow\_postgres environment: POSTGRES\_USER: airflow POSTGRES\_PASSWORD: airflow POSTGRES\_DB: airflow ports: \- "5432:5432" airflow-webserver: image: apache/airflow:2.10.3 container\_name: airflow\_webserver environment: \- AIRFLOW\_\_CORE\_\_SQL\_ALCHEMY\_CONN=postgresql+psycopg2://airflow:airflow@postgres:5432/airflow \- AIRFLOW\_\_CORE\_\_EXECUTOR=LocalExecutor ports: \- "8080:8080" depends\_on: \- postgres airflow-init: image: apache/airflow:2.10.3 container\_name: airflow\_init entrypoint: \["airflow", "db", "init"] environment: \- AIRFLOW\_\_CORE\_\_SQL\_ALCHEMY\_CONN=postgresql+psycopg2://airflow:airflow@postgres:5432/airflow ### **Configuración con Celery** Para escalabilidad en la ejecución de tareas distribuidas. #### Requisitos: * Redis como backend de mensajes. * Varias instancias de worker. version: '3.7' services: redis: image: redis:6 container\_name: airflow\_redis ports: \- "6379:6379" airflow-webserver: image: apache/airflow:2.10.3 container\_name: airflow\_webserver environment: \- AIRFLOW\_\_CELERY\_\_BROKER\_URL=redis://redis:6379/0 \- AIRFLOW\_\_CELERY\_\_RESULT\_BACKEND=db+sqlite:///airflow/airflow.db \- AIRFLOW\_\_CORE\_\_EXECUTOR=CeleryExecutor ports: \- "8080:8080" depends\_on: \- redis airflow-worker: image: apache/airflow:2.10.3 container\_name: airflow\_worker environment: \- AIRFLOW\_\_CELERY\_\_BROKER\_URL=redis://redis:6379/0 \- AIRFLOW\_\_CELERY\_\_RESULT\_BACKEND=db+sqlite:///airflow/airflow.db \- AIRFLOW\_\_CORE\_\_EXECUTOR=CeleryExecutor depends\_on: \- redis airflow-init: image: apache/airflow:2.10.3 container\_name: airflow\_init entrypoint: \["airflow", "db", "init"] ### **Configuración para Desarrollo** Si quieres montar volúmenes locales para edición dinámica de DAGs y plugins. #### Configuración de Volúmenes: volumes: dags: driver: local logs: driver: local plugins: driver: local #### Docker Compose: services: airflow-webserver: image: apache/airflow:2.10.3 ports: \- "8080:8080" volumes: \- ./dags:/opt/airflow/dags \- ./plugins:/opt/airflow/plugins ### **Configuración Multiusuario** Para entornos donde varias personas necesitan trabajar con un servidor web compartido. #### Ambiente: * Agrega soporte para autenticación (por ejemplo, con LDAP o OAuth). environment: \- AIRFLOW\_\_WEBSERVER\_\_AUTH\_BACKEND=airflow.providers.google.cloud.auth\_backend.google\_auth Configura las credenciales de Google OAuth siguiendo la [guía oficial de Airflow](https://airflow.apache.org/docs/apache-airflow/stable/security/auth-backends.html). ### **Notas Generales** 1. **Comando de Inicialización**: Siempre ejecuta antes:docker-compose up airflow-init 2. **Archivo** `.env`: Utiliza un archivo `.env` para gestionar variables sensibles:AIRFLOW\_UID=50000 Si necesitas más detalles, avísame y personalizamos la configuración según tu entorno.
¿El archivo de configuración que se modifica solo es el del web server? Revisé en el scheduler y ahí también existe un airflow.cfg.
Hola, cuando inicio el contenedor de Docker todo se relentiza y hace imposible trabajar, abrir la UI de Airflow es eterno. Alguno concejo para sortear este problema?

La forma de definir la configuración es travez del archivo airflow.cfg ubicado en el Working Directory del contenedor “Webserver” y puedes pasar los parámetros a travez de Docker compose en las variables de entorno.