services: db: container_name: postgres_container image: postgres:15.15 environment: POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_DB: ${POSTGRES_DB} volumes: - postgres_data:/var/lib/postgresql/data restart: unless-stopped airflow: container_name: airflow_container 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: - ./airflow/dags:/opt/airflow/dags - ./airflow/logs:/opt/airflow/logs - ./airflow/plugins:/opt/airflow/plugins command: > bash -c " airflow db migrate && airflow scheduler & exec airflow api-server --port 8080 " ports: - "8000:8080" restart: unless-stopped volumes: postgres_data: airflow_logs: airflow_plugins: