gpt4 book ai didi

docker - 如何通过docker-compose使docker容器与localstack docker容器通信?

转载 作者:行者123 更新时间:2023-12-02 19:53:21 32 4
gpt4 key购买 nike

我正在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 : An exception occurred while polling for messages: Unable to execute HTTP request: Connect to localhost:4576 [localhost/127.0.0.1] failed: Connection refused (Connection refused)

最佳答案

关于这个错误

Connect to localhost:4576 [localhost/127.0.0.1] failed: Connection refused (Connection refused)



似乎您已经在服务 jc中准备好设置了,对于问题应用程序也需要相同的设置。
links:
- localstack

我猜您的应用程序也在另一个docker中运行,而不是直接在主机上运行。因此,您无法从应用程序容器访问 localhost:4567,因为在容器本身无法访问这些aws模拟的服务。两种解决方案:
  • 将localstack容器链接到您的应用程序。例如,如果链接名称为localstack,则可以使用localstack:4567
  • 访问服务
  • 获取主机的真实IP地址,使用IP:4567进行访问
  • 关于docker - 如何通过docker-compose使docker容器与localstack docker容器通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59295524/

    32 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com