我正在Docker容器内设置一个应用程序。我希望此应用程序能够连接到localstack堆栈容器localstack docs。当我运行docker-compose up
时,容器成功启动。我可以运行一个单独的java应用程序,该应用程序不包含在Docker-compose文件中,它将成功连接到localstack容器。但与localstack沿着启动的应用程序无法连接。我看过docker文档和localstack文档,我不知道如何让这些东西相互交流。任何帮助都将非常感谢。下面是我的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"
我收到的错误消息是:
应用程序=jc版本=2.0.1.0:轮询消息时发生异常:无法执行HTTP请求:连接到本地主机:4576 [localhost/127.0.0.1]失败:连接被拒绝(连接被拒绝)
2条答案
按热度按时间kokeuurv1#
关于此错误
连接到本地主机:4576 [localhost/127.0.0.1]失败:连接被拒绝(连接被拒绝)
看起来你已经在服务
jc
中准备好了设置,你需要为你的问题应用程序准备相同的设置。我猜你的应用程序也在另一个Docker中运行,而不是直接在主机上运行。所以你不能从应用程序容器访问
localhost:4567
,因为这些aws模拟的服务在容器本身中是不可访问的。1.链接这localstack容器到你的应用程序.例如如果这链接名称是
localstack
,那么你可以访问服务与localstack:4567
1.获取主机的真实的IP地址,使用
IP:4567
访问isr3a4wc2#
LocalStack给了我们最初的配置困难。我们使用docker-compose在本地运行它,使用服务在GitLab上运行它。我们将它用于S3服务
现在,这将在Spring Bean中读取,对于连接,我们在url中使用http://localstack:4566。http://localhost:4566在容器内工作,在容器外必须是http://localstack:4566
对于GitLab部署,我们在服务中使用以下配置
作为在Docker容器内运行的功能测试,S3配置URL需要为http://localhost:4566