Airflow/docker-compose.yaml

65 lines
2.3 KiB
YAML

services:
db:
container_name: db-airflow
image: 'postgres:15.15'
environment:
POSTGRES_USER: '${POSTGRES_USER}'
POSTGRES_PASSWORD: '${POSTGRES_PASSWORD}'
POSTGRES_DB: '${POSTGRES_DB}'
volumes:
- 'airflow-postgres_data:/var/lib/postgresql/data'
restart: unless-stopped
networks:
airflow_network: null
labels:
- coolify.managed=true
- coolify.version=4.0.0-beta.323
- coolify.applicationId=17
- coolify.type=application
- coolify.name=db-airflow
airflow:
container_name: airflow
image: 'apache/airflow:3.1.3'
depends_on:
- db
environment:
AIRFLOW__DATABASE__SQL_ALCHEMY_CONN: 'postgresql+psycopg2://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB}'
AIRFLOW__CORE__LOAD_EXAMPLES: 'false'
AIRFLOW__CORE__EXECUTOR: LocalExecutor
AIRFLOW__WEBSERVER__EXPOSE_CONFIG: 'true'
AIRFLOW__CORE__DAGS_FOLDER: /opt/airflow/dags
volumes:
- '/data/coolify/applications/airflow/dags:/opt/airflow/dags'
- '/data/coolify/applications/airflow/logs:/opt/airflow/logs'
- '/data/coolify/applications/airflow/plugins:/opt/airflow/plugins'
command: >
bash -c "airflow db migrate && airflow scheduler & exec airflow api-server --port 8080"
restart: unless-stopped
networks:
airflow_network: null
labels:
- traefik.enable=true
- traefik.http.routers.airflow-http.entrypoints=http
- traefik.http.routers.airflow-http.rule=Host(`airflow.camcodes.dev`)
- traefik.http.routers.airflow-http.middlewares=redirect-to-https
- traefik.http.routers.airflow-https.entrypoints=https
- traefik.http.routers.airflow-https.rule=Host(`airflow.camcodes.dev`)
- traefik.http.routers.airflow-https.tls=true
- traefik.http.routers.airflow-https.tls.certresolver=letsencrypt
- traefik.http.services.airflow.loadbalancer.server.port=8080
- traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
- coolify.managed=true
- coolify.version=4.0.0-beta.323
- coolify.applicationId=17
- coolify.type=application
- coolify.name=airflow
volumes:
airflow-postgres_data:
name: airflow-postgres_data
networks:
airflow_network:
name: airflow_network
external: true