我正在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"

我收到的错误消息是:

最佳答案

关于这个错误



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

links:
- localstack

我猜您的应用程序也在另一个docker中运行,而不是直接在主机上运行。因此,您无法从应用程序容器访问localhost:4567,因为在容器本身无法访问这些aws模拟的服务。两种解决方案:
  • 将localstack容器链接到您的应用程序。例如,如果链接名称为localstack,则可以使用localstack:4567
  • 访问服务
  • 获取主机的真实IP地址,使用IP:4567进行访问
  • 09-04 00:59