【问题标题】:Docker networking: containers not communicatingDocker 网络:容器不通信
【发布时间】:2021-04-23 19:22:09
【问题描述】:

这是我的 docker-compose 文件:

version: "3.9"
services:
    api:
        image: my-api
        ports: 
            - "8090:8090"
    webapp:
        build: ./
        ports:
            - "8082:8082"

在我的 webapp 中,我有一个带有 api 服务 URL 的属性文件

api.url=http://api:8090/platform

然后 webapp 代码使用该 api 调用 web 服务,但它不工作。我会收到这样的错误

Fail, Return Code: 404

我也尝试过使用“host.docker.internal”或“docker”,但它们也不起作用。我究竟做错了什么? webapp 在 tomcat 8.5, jdk 8 中运行。

【问题讨论】:

    标签: java docker tomcat networking


    【解决方案1】:

    404 状态码是一个 http 错误码,要求连接成功。该状态代码来自api 容器,因此您在容器之间具有连接性。你应该看看为什么/platform 路径没有在你的api 服务中返回内容。

    【讨论】:

    • 也许 404 来自另一个呼叫的下游。我正在监视 api 服务上的日志,当我从应该调用它的 webapp 运行操作时,它永远不会触发。我知道 api 服务也运行良好,因为我可以从 Postman 连接到它并获得有效响应,并且我看到 api 服务日志在我调用它时触发。当我将 url 设置为不在容器中运行的 api 服务的另一个实例时,它工作正常,所以我知道 webapp 代码没问题。
    • @wlaem 恐怕这个问题不足以让我尝试重现您的问题。但是,根据您提供的信息,api:8090 是正确的。
    • 原来我的 url 路径不正确。感谢您的帮助
    猜你喜欢
    • 2022-01-21
    • 2020-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多