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

Docker Compose部署下Spring Boot与RabbitMQ、MySQL通信故障排查

Docker Compose部署Spring Boot应用连接失败排查指南

先修复当前配置里的明显错误

你的配置存在几个直接导致连接失败的问题:

  • RabbitMQ地址错误:application.properties里spring.rabbitmq.host=localhost,在Docker容器内,localhost指向容器自身而非RabbitMQ服务,需改为服务名rabbitmq:
    spring.rabbitmq.host=rabbitmq
    
  • MySQL数据库名不匹配:application.properties中指定的数据库是thermostat,但docker-compose.yml里MySQL的MYSQL_DATABASE设置为mysqldb,二者需统一:
    要么修改application.properties:
    spring.datasource.url=jdbc:mysql://db:${MYSQL_PORT:3306}/mysqldb
    
    要么修改docker-compose.yml的db服务环境变量:
    MYSQL_DATABASE: thermostat
    
  • 启动依赖缺失:Spring Boot启动时,MySQL和RabbitMQ可能未完成初始化,导致连接失败触发重启,需在thermostat-app服务中添加启动依赖:
    depends_on:
      - db
      - rabbitmq
    
    注意:depends_on仅保证启动顺序,不保证服务就绪,若需确保服务可用,可配合wait-for-it脚本或健康检查配置。

通用排查步骤

1. 查看容器日志

直接查看Spring Boot应用的错误日志,定位具体连接失败原因:

docker-compose logs -f thermostat-app

MySQL连接失败通常会显示Connection refused或Unknown database;RabbitMQ连接失败则会出现Connection to localhost:5672 refused类信息。

2. 检查容器网络连通性

进入Spring Boot容器,测试与MySQL、RabbitMQ的连通性:

# 进入容器
docker-compose exec thermostat-app sh
# ping MySQL服务(使用服务名db)
ping db
# ping RabbitMQ服务(使用服务名rabbitmq)
ping rabbitmq
# 测试MySQL端口连通性
nc -zv db 3306
# 测试RabbitMQ端口连通性
nc -zv rabbitmq 5672

若ping不通或端口无法连接,需确认容器是否在同一Docker网络:执行docker inspect net查看所有服务容器是否都加入了net网络。

3. 验证数据库和RabbitMQ服务状态

  • 检查MySQL服务:进入MySQL容器,验证数据库是否存在、账号密码是否正确:
docker-compose exec db mysql -uroot -ppassword
# 查看数据库列表
show databases;
  • 检查RabbitMQ服务:在docker-compose.yml的rabbitmq服务中添加端口映射ports: - "15672:15672",然后访问http://localhost:15672,用guest/guest登录确认服务正常运行。

4. 检查环境变量传递情况

在Spring Boot容器内查看环境变量是否正确加载:

docker-compose exec thermostat-app printenv

确认MYSQL_USER、MYSQL_PASSWORD、MYSQL_PORT等变量与docker-compose.yml配置一致。

5. 临时调整重启策略

将thermostat-app的restart: always改为restart: no,避免容器不断重启干扰调试,手动启动查看错误:

docker-compose up thermostat-app

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 04:02:48