同一Docker网络下容器无法连接RabbitMQ与Redis问题排查
问题解决:Docker Compose环境下RabbitMQ连接ECONNREFUSED 127.0.0.1:5672
场景与问题
本地通过Docker Compose部署服务集群,配置了名为sosyal的桥接网络,包含以下组件:
- 基础服务:SQL Server、RabbitMQ、Redis
- 业务服务:
sosyal-auth、sosyal-account等
将RabbitMQ连接字符串更新为amqp://guest:guest@rabbitmq-docker:5672后,业务服务连接RabbitMQ时抛出错误:
connect ECONNREFUSED 127.0.0.1:5672
排查过程
- 验证所有容器均已加入
sosyal网络,跨容器网络连通性测试正常 - 确认RabbitMQ容器运行状态正常,5672端口在容器内部监听正常
根因分析
排查后发现,sosyal-auth和 sosyal-account服务的Dockerfile在构建镜像时,使用的是未更新的旧dist文件——旧dist中仍保留着指向127.0.0.1:5672的RabbitMQ连接配置,并未加载新的连接字符串。
解决方案
修改 sosyal-auth和 sosyal-account的Dockerfile,确保构建流程会生成并使用最新的dist文件(比如在构建步骤中新增代码编译生成dist的逻辑,或清理旧dist后重新生成)。重新构建镜像并部署服务后,业务服务可正常连接RabbitMQ。
内容的提问来源于stack exchange,提问作者Emir Kutlugün
相关产品推荐
相关产品推荐

