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

2024-06-20

我正在 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 模拟服务在容器本身中无法访问。两种解决方案:

  1. 将 localstack 容器链接到您的应用程序。例如,如果链接名称是localstack,然后您可以使用以下方式访问服务localstack:4567

  2. 获取主机真实IP地址,访问IP:4567

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 docker-compose 使 docker 容器与 localstack docker 容器通信? 的相关文章

随机推荐