【问题标题】:Connecting to localhost from Docker (Java Application using localstack for mocking AWS)从 Docker 连接到 localhost(使用 localstack 模拟 AWS 的 Java 应用程序)
【发布时间】:2020-06-10 12:34:24
【问题描述】:

我正在使用 localstack 在本地模拟 AWS 资源。当我从 IDE 运行我的应用程序时,这工作正常。我有一个 dockerfile,其中包含以下内容(1338 是此应用程序将运行的端口)

ADD target/myapp-0.0.1-SNAPSHOT.jar app.jar

我有一个要运行的脚本是

#!/bin/bash
set -e # Stop on errors

mvn clean package

docker build -t myapp .

docker run -it --name myapp -p 1338:1338 --rm myapp:latest

所以当我运行时我得到了错误

Unexpected error occurred in scheduled task
com.amazonaws.SdkClientException: Unable to execute HTTP request: Connect to localhost:4575 [localhost/127.0.0.1] failed: Connection refused (Connection refused)

【问题讨论】:

  • 如果localstack不在docker镜像myapp:latest中,那么你将无法连接到docker容器中的localstack。我认为您有 2 个选择,1,在 docker 映像 myapp 中安装/配置 localstack。 2、docker run带参数--network host
  • 第二个选项有效,添加为答案,我会接受它

标签: java amazon-web-services docker dockerfile localstack


【解决方案1】:

我想您正在主机操作系统上运行 localstack,这就是 myapp 无法访问它的原因。 要解决您的问题,您需要通过添加参数--network host 来调整您的docker run 指令。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多