python - Docker 为 Airflow 2 编写文件(版本 2.0.0)

标签 python python-3.x docker-compose airflow airflow-2.x

我正在寻找编写 docker compose 文件以在类似的生产环境中本地执行 Airflow 。
对于较旧的 Airflow v1.10.14,docker compose 工作正常。但是同样的 docker compose 不适用于最新的稳定版本,airflow scheduler & webservice 不断失败。错误消息看起来像无法创建审计表。docker-compose.yaml :

 version: "2.1"
services:
  postgres:
    image: postgres:12
    environment:
      - POSTGRES_USER=airflow
      - POSTGRES_PASSWORD=airflow
      - POSTGRES_DB=airflow
    ports:
      - "5433:5432"

  scheduler:
    image: apache/airflow:1.10.14
    restart: always
    depends_on:
      - postgres
      - webserver
    env_file:
      - .env
    ports:
      - "8793:8793"
    volumes:
      - ./dags:/opt/airflow/dags
      - ./airflow-logs:/opt/airflow/logs
      - ./plugins:/opt/airflow/plugins
    command: scheduler
    healthcheck:
      test: ["CMD-SHELL", "[ -f /usr/local/airflow/airflow-webserver.pid ]"]
      interval: 30s
      timeout: 30s
      retries: 5

  webserver:
    image: apache/airflow:1.10.14
    hostname: webserver
    restart: always
    depends_on:
      - postgres
    env_file:
      - .env
    volumes:
      - ./dags:/opt/airflow/dags
      - ./scripts:/opt/airflow/scripts
      - ./airflow-logs:/opt/airflow/logs
      - ./plugins:/opt/airflow/plugins
    ports:
      - "8080:8080"
    entrypoint: ./scripts/airflow-entrypoint.sh
    healthcheck:
      test: ["CMD-SHELL", "[ -f /usr/local/airflow/airflow-webserver.pid ]"]
      interval: 30s
      timeout: 30s
      retries: 5
.env :
AIRFLOW__CORE__LOAD_DEFAULT_CONNECTIONS=False
AIRFLOW__CORE__SQL_ALCHEMY_CONN=postgres+psycopg2://airflow:airflow@postgres:5432/airflow
AIRFLOW__CORE__FERNET_KEY=81HqDtbqAywKSOumSha3BhWNOdQ26slT6K0YaZeZyPs=
AIRFLOW_CONN_METADATA_DB=postgres+psycopg2://airflow:airflow@postgres:5432/airflow
AIRFLOW_VAR__METADATA_DB_SCHEMA=airflow
AIRFLOW__SCHEDULER__SCHEDULER_HEARTBEAT_SEC=10
./scripts/airflow-entrypoint.sh :
#!/usr/bin/env bash
airflow upgradedb
airflow webserver

最佳答案

有官方docker-compose.ymlhere

关于python - Docker 为 Airflow 2 编写文件(版本 2.0.0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65889968/

相关文章:

python - 运行程序一分钟然后暂停一分钟的最简单方法是什么

python - 多次调用类中的方法且变量保持一致

selenium - 在docker容器中运行selenium chrome浏览器

python - 无法通过 ftplib (Python) 使用 IP 地址

python - 类型错误 : must be convertible to a buffer, 不是结果集

python - 从终端捕获结果(外部进程)

python - 通过在Python中添加全局变量名称和字符串来创建df列名称

docker - 如何为每个 jenkins 构建配置 selenoid 中 `-container-network` 的值?

docker - 带Linux Docker容器的Asp.net核心

python - 在 selenium 下运行时如何减少 chromedriver 日志的冗长?