You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker Compose部署Airflow HA遇502错误,请求解决方法

解决Docker Compose启动Airflow-init时的502 Bad Gateway问题

排查方向与解决方案

1. 先确认Docker引擎本身状态

  • 检查Docker服务运行情况:Linux环境执行 systemctl status docker,Windows/macOS直接查看Docker Desktop是否处于运行状态。未启动的话,Linux用 systemctl start docker 启动服务,桌面版直接重启Docker。
  • 验证当前用户Docker操作权限:执行 docker ps 测试,若提示权限不足,将用户加入docker组:sudo usermod -aG docker $USER,之后重新登录会话再操作。

2. 核对Docker Socket挂载配置

Airflow初始化服务需要访问Docker引擎的socket,官方默认配置中会包含 - /var/run/docker.sock:/var/run/docker.sock 的挂载项。打开你的docker-compose.yaml,找到airflow-init服务的volumes部分,确认该挂载项未被误删。如果缺失,添加后重新执行初始化命令。

3. 清理残留Docker资源后重试

旧的容器、网络、卷残留可能引发冲突:

  • 彻底清理现有资源:docker-compose down -v,该命令会删除关联的容器、网络和卷。
  • 先单独启动依赖服务:docker-compose up -d mysql rabbitmq,等待10秒左右让服务稳定运行。
  • 重新执行初始化命令:docker-compose up airflow-init。

4. 检查MySQL与RabbitMQ配置正确性

后端服务配置错误可能间接引发Docker相关报错,需重点核对:

  • 验证MySQL连接串 AIRFLOW__DATABASE__SQL_ALCHEMY_CONN:格式必须为 mysql+pymysql://<用户名>:<密码>@<mysql容器名>:3306/<数据库名>?charset=utf8mb4,确保MySQL容器内已创建目标数据库,且用户拥有读写权限。
  • 验证RabbitMQ配置:AIRFLOW__CELERY__BROKER_URL 格式应为 amqp://<用户名>:<密码>@<rabbitmq容器名>:5672//;AIRFLOW__CELERY__RESULT_BACKEND 需使用与SQL_ALCHEMY_CONN一致的MySQL连接串。
  • 可单独进入MySQL容器验证连接:docker exec -it <mysql容器名> mysql -u<用户名> -p<密码>,确认能正常登录并访问目标数据库。

5. 升级Docker Compose版本

Airflow 2.x要求Docker Compose版本至少为1.29以上。执行 docker-compose --version 查看当前版本,若版本过低,直接升级到最新稳定版即可。


内容的提问来源于stack exchange,提问作者linhnq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 19:10:59