【问题标题】:Airflow 2 / Docker: adding custom network in docker-compose.yml failsAirflow 2 / Docker:在 docker-compose.yml 中添加自定义网络失败
【发布时间】:2021-08-03 14:25:41
【问题描述】:

我已经使用 docker-compose 安装了气流 2.0.2,如 https://airflow.apache.org/docs/apache-airflow/stable/start/docker.html 中所述。使用的 docker-compose.yml 可以在这里找到:https://airflow.apache.org/docs/apache-airflow/2.0.2/docker-compose.yaml

我想执行一个 DAG,它通过 API 下载一些数据并将其发送到在另一个 docker 容器中运行的 Kafka 服务器(在另一个 docker-compose 管道中定义)。到目前为止(不使用气流),我为 kafka / zookeper 容器使用了自定义 docker 网络;这就是为什么我还想将气流 docker 容器添加到此网络的原因。

因此,我将以下内容添加到气流的 docker-compose.yml 中:

networks:
  app-tier:
    driver: bridge
    name: app-tier

另外,我将networks 参数包含在x-airflow-common 中,如下所示:

version: '3'
x-airflow-common:
  &airflow-common
  build: .
  image: ${AIRFLOW_IMAGE_NAME:-apache/airflow:2.0.2}
  environment:
    &airflow-common-env
    AIRFLOW__CORE__EXECUTOR: CeleryExecutor
    AIRFLOW__CORE__SQL_ALCHEMY_CONN: postgresql+psycopg2://airflow:airflow@postgres/airflow
    AIRFLOW__CELERY__RESULT_BACKEND: db+postgresql://airflow:airflow@postgres/airflow
    AIRFLOW__CELERY__BROKER_URL: redis://:@redis:6379/0
    AIRFLOW__CORE__FERNET_KEY: ''
    AIRFLOW__CORE__DAGS_ARE_PAUSED_AT_CREATION: 'false'
    AIRFLOW__CORE__LOAD_EXAMPLES: 'false'
    AIRFLOW__API__AUTH_BACKEND: 'airflow.api.auth.backend.basic_auth'
  volumes:
    - ./dags:/opt/airflow/dags
    - ./logs:/opt/airflow/logs
    - ./plugins:/opt/airflow/plugins
  user: "${AIRFLOW_UID:-50000}:${AIRFLOW_GID:-50000}"
  depends_on:
    redis:
      condition: service_healthy
    postgres:
      condition: service_healthy
  networks:
    - app-tier

但是,当启动我的 docker-compose 管道时,除 Postgres 和 Redis(worker、webserver、flower、scheduler)之外的所有容器的健康检查都失败,并显示以下消息:

daniel@Yoga:~/Schreibtisch/Projekte/db/airflow_neu$ docker logs airflowWorker
BACKEND=postgresql+psycopg2 DB_HOST=postgres

DB_PORT=5432 ....................错误!最大重试次数 (20) 到达。

上次检查结果:$ run_nc 'postgres' '5432' Traceback(最近 最后调用):文件“”,第 1 行,在 socket.gaierror 中: [Errno -3] 名称解析暂时失败 无法解析为 IP 地址

我将此解释为无法再访问 Postgres 数据库,但我不知道如何解决此问题。

  • 我将气流容器添加到现有网络的方法是否正确?
  • 如何解决运行状况检查失败的问题?

【问题讨论】:

标签: postgresql docker docker-compose airflow


【解决方案1】:

通过包含external 标签解决了这个问题:

networks:
  default:
    external: true
    name: app-tier

【讨论】:

    猜你喜欢
    • 2018-05-28
    • 2018-08-27
    • 2022-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多