Dockerizing springboot 应用程序(在容器中)未连接到 rabbitmq(在容器中):连接被拒绝
Dockerizing springboot application(in container) not connecting to rabbitmq(in container): connection refused
我花了几个小时在谷歌上搜索这个,但我似乎找不到正确的 pathway/documentation 来帮助我走上正确的道路:(
前提很简单。
我有一个在 localhost:8080 上打开的 spring 启动应用程序。
我有一个在 localhost:15672
上打开的 rabbitmq 服务器
springboot 应用程序将在 运行ning 时通过一些用户交互向 rabbitmq 服务器发送消息。
当我 docker 化(容器化?)这两个单独的服务时会出现问题
现在,当它们都被容器化时——我仍然可以分别使用 localhost:8080 和 localhost:15672 访问这两个应用程序。
但是当我的 spring 引导应用程序提交用户消息时,我不断收到 “连接被拒绝” 错误。
我所做的事情无济于事(失败):
- 两个容器在创建时都使用默认的“桥接”网络 - 不起作用。
- 尝试创建我自己的用户定义网络,将两个容器放入自定义网络中 - 没用
- 创建了一个 docker-compose 文件
version: "3.2"
services:
rabbitmq:
image: rabbitmq:management
ports:
- "5672:5672"
- "15672:15672"
networks:
- hin-net
app-container:
image: spring/spring-boot-docker:latest
ports:
- 8080:8080
environment:
- SPRING_RABBITMQ_HOST=rabbitmq
depends_on:
- rabbitmq
networks:
hin-net:
driver: bridge
唯一做的就是自动创建两个 docker 容器,而不是我通过“docker 运行”创建它们 - 这也没有用。
任何人都可以帮助 link 或提供一些关于如何让我的 spring 启动应用程序查看并连接到我的 rabbitMQ 服务器的指导吗?
我到处都看到人们说“确保他们在同一个 docker 网络中”,但这没有用。我怀疑我的 docker 撰写文件缺少一些重要的配置,但我不知道下一步可以去哪里。
这两个线程几乎是我的问题
- Connect to RabbitMQ in docker-container from another container
- Connect java application in docker container to rabbitmq
但他们已经死了,而且从未找到解决方案。
Welp 找到了答案。希望将来有同样问题的任何人都能遇到这个 post 并且能够继续他们的项目!
这不是一个 docker 问题,明确地..
您的应用程序的主机名需要是 运行 rabbitmq 的容器名称。
因此,在 springboot 的 application.properties 文件中,您可能将主机名设置为“localhost”,将其更改为您的容器名称,rabbit 将建立连接。
我读到这是一个 rabbitmq 依赖项。弱,好弱
希望对大家有所帮助
第二个参考:Rabbitmq connection refused from Docker container to local host
(第二个答案正确)
我花了几个小时在谷歌上搜索这个,但我似乎找不到正确的 pathway/documentation 来帮助我走上正确的道路:(
前提很简单。
我有一个在 localhost:8080 上打开的 spring 启动应用程序。 我有一个在 localhost:15672
上打开的 rabbitmq 服务器springboot 应用程序将在 运行ning 时通过一些用户交互向 rabbitmq 服务器发送消息。 当我 docker 化(容器化?)这两个单独的服务时会出现问题 现在,当它们都被容器化时——我仍然可以分别使用 localhost:8080 和 localhost:15672 访问这两个应用程序。 但是当我的 spring 引导应用程序提交用户消息时,我不断收到 “连接被拒绝” 错误。
我所做的事情无济于事(失败):
- 两个容器在创建时都使用默认的“桥接”网络 - 不起作用。
- 尝试创建我自己的用户定义网络,将两个容器放入自定义网络中 - 没用
- 创建了一个 docker-compose 文件
version: "3.2" services: rabbitmq: image: rabbitmq:management ports: - "5672:5672" - "15672:15672" networks: - hin-net app-container: image: spring/spring-boot-docker:latest ports: - 8080:8080 environment: - SPRING_RABBITMQ_HOST=rabbitmq depends_on: - rabbitmq networks: hin-net: driver: bridge
唯一做的就是自动创建两个 docker 容器,而不是我通过“docker 运行”创建它们 - 这也没有用。
任何人都可以帮助 link 或提供一些关于如何让我的 spring 启动应用程序查看并连接到我的 rabbitMQ 服务器的指导吗? 我到处都看到人们说“确保他们在同一个 docker 网络中”,但这没有用。我怀疑我的 docker 撰写文件缺少一些重要的配置,但我不知道下一步可以去哪里。
这两个线程几乎是我的问题
- Connect to RabbitMQ in docker-container from another container
- Connect java application in docker container to rabbitmq
但他们已经死了,而且从未找到解决方案。
Welp 找到了答案。希望将来有同样问题的任何人都能遇到这个 post 并且能够继续他们的项目!
这不是一个 docker 问题,明确地.. 您的应用程序的主机名需要是 运行 rabbitmq 的容器名称。 因此,在 springboot 的 application.properties 文件中,您可能将主机名设置为“localhost”,将其更改为您的容器名称,rabbit 将建立连接。
我读到这是一个 rabbitmq 依赖项。弱,好弱
希望对大家有所帮助
第二个参考:Rabbitmq connection refused from Docker container to local host (第二个答案正确)