我正在 docker 容器内设置一个应用程序。我希望这个应用程序能够与 localstack 堆栈容器连接本地堆栈文档 https://localstack.cloud/。当我跑步时docker-compose up
容器启动成功。我可以运行一个未包含在 docker-compose 文件中的单独的 java 应用程序,该应用程序将成功连接到 localstack 容器。但是随localstack启动的应用程序无法连接。我查看了 docker 文档和 localstack 文档,但我不知道如何让这些东西相互通信。任何帮助将不胜感激。这是我的docker-compose
file:
version: '3.4'
networks:
default:
driver: bridge
services:
jc:
build:
context: .
dockerfile: ./Dockerfile
args:
- PORT=5001
network: host
image: jc
depends_on:
- localstack
container_name: jc
ports:
- 5001:5001
links:
- localstack
environment:
- SPRING_PROFILES_ACTIVE=local
localstack:
image: localstack/localstack
ports:
- "4567-4584:4567-4584"
我收到的错误消息是:
sqs.SqsPoller app=jc version=2.0.1.0 :轮询消息时发生异常:无法执行 HTTP 请求:连接到 localhost:4576 [localhost/127.0.0.1] 失败:连接被拒绝(连接被拒绝)
关于这个错误
连接到本地主机:4576 [本地主机/127.0.0.1】失败:连接被拒绝(连接被拒绝)
看来您已准备好使用设置jc
,您的问题应用程序也需要同样的东西。
links:
- localstack
我猜你的应用程序也在另一个泊坞窗中运行,而不是直接在主机上运行。所以你无法访问localhost:4567
来自应用程序容器,因为这些 aws 模拟服务在容器本身中无法访问。两种解决方案:
将 localstack 容器链接到您的应用程序。例如,如果链接名称是localstack
,然后您可以使用以下方式访问服务localstack:4567
获取主机真实IP地址,访问IP:4567
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)