如何在Docker Compose中设置Airflow Worker公共主机名解决日志读取失败
Airflow日志读取错误:域名解析临时失败
用Docker Compose部署Airflow v2.6.3时,碰到日志读取报错:Airflow: Could not read served logs: [Errno -3] Temporary failure in name resolution。
为了设置Airflow Worker的公共主机名,我已经试过这些操作:
- 配置HOSTNAME环境变量
- 在docker-compose里设置hostname字段
- 把启动命令改成
celery worker -H ${HOSTNAME}
现在Flower里Celery Worker的名字已经正确显示为主机名,但任务实例详情里还是显示Docker容器ID,导致Airflow UI没法访问独立Docker服务器上的Worker日志。
我的docker-compose配置片段如下:
airflow-worker: <<: *airflow-common command: celery worker -H ${HOSTNAME} hostname: ${HOSTNAME} healthcheck: test: - "CMD-SHELL" - 'celery --app airflow.executors.celery_executor.app inspect ping -d "celery@$${HOSTNAME}"' interval: 30s timeout: 10s retries: 5 start_period: 30s environment: <<: *airflow-common-env # 确保Celery Worker可以正常优雅关闭 DUMB_INIT_SETSID: "0" HOSTNAME: ${HOSTNAME} restart: always
问题出在任务实例详情里的主机名显示(当前显示为容器ID),需要修改这个字段的值来解决日志读取的域名解析问题。
内容的提问来源于stack exchange,提问作者Ralph Ritoch
相关产品推荐
相关产品推荐

