我正在docker容器中设置一个应用程序。我希望该应用程序能够与localstack堆栈容器localstack docs连接。当我运行docker-compose up
时,容器成功启动。我可以运行docker-compose文件中未包含的单独的Java应用程序,该应用程序将成功连接到localstack容器。但是与localstack一起启动的应用程序无法连接。我已经看了看docker docs和localstack docs,但我想不出如何使这些东西相互通信的方法。任何帮助将不胜感激。这是我的docker-compose
文件:
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]失败:连接被拒绝(连接被拒绝)< / p>
答案 0 :(得分:0)
关于此错误
连接到localhost:4576 [ localhost / 127.0.0.1 ]失败:连接被拒绝(连接被拒绝)
似乎您已经在服务jc
中准备好设置,对于您的问题应用程序也需要相同的设置。
links:
- localstack
我猜您的应用程序也在另一个docker中运行,而不是直接在主机上运行。因此,您无法从应用程序容器访问localhost:4567
,因为在容器本身无法访问这些aws模拟的服务。两种解决方案:
将localstack容器链接到您的应用程序。例如,如果链接名称为localstack
,则可以使用localstack:4567
获取主机的真实IP地址,使用IP:4567