【发布时间】: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=postgresDB_PORT=5432 ....................错误!最大重试次数 (20) 到达。
上次检查结果:$ run_nc 'postgres' '5432' Traceback(最近 最后调用):文件“”,第 1 行,在 socket.gaierror 中: [Errno -3] 名称解析暂时失败 无法解析为 IP 地址
我将此解释为无法再访问 Postgres 数据库,但我不知道如何解决此问题。
- 我将气流容器添加到现有网络的方法是否正确?
- 如何解决运行状况检查失败的问题?
【问题讨论】:
-
这个问题和编程有什么关系?它可能更适合DevOps 或Server Fault。 --- 请阅读:Can I ask only one question per post?
标签: postgresql docker docker-compose airflow