Docker compose файл для airflow 2 (версия 2.0.0)

Я хочу написать файл docker compose для локального выполнения воздушного потока в аналогичной производственной среде.

Для более старых версий airflow v1.10.14 docker compose работает нормально. Но тот же состав докеров не работает для последней стабильной версии, планировщик воздушного потока и веб-сервис постоянно не работают. сообщение об ошибке выглядит как невозможно создать таблицы аудита.

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

4 ответа

Решение

Есть официальная docker-compose.ymlсмотрите здесь

обновить версию docker-compose до: version: "3.7"

Официальный образ докера для Airflow версии 2.0 уже доступен. Вот список изображений докеров 2.0.0

Пример изображения докера:

      # example:
apache/airflow:2.0.0-python3.8

Официальный файл компоновки докеров указывает на основную версию Airflow. Лучше придерживаться выпущенных версий Airflow.

Первый забег :

      docker compose up airflow-init 

Обратите внимание, что в Docker используется пробел (вместо -).

а потом :

      docker compose up 

он должен работать!

Другие вопросы по тегам