Docker 获取 http://localhost:8091/api/order: dial tcp 127.0.0.1:8091: connect: connection denied

问题描述

我在 Docker 中有 2 个容器:

  1. golang 服务
  2. odoo 服务

golang 服务会在 odoo 服务中命中 api

我在没有 2 个 docker 容器的情况下尝试过,它工作正常,但是当我将 golang 服务放入 docker 容器时,出现此错误

我知道这个帖子Getting error "Get http://localhost:9443/metrics: dial tcp 127.0.0.1:9443: connect: connection refused"

这就是我在 golang 中定义我的 odoo 网址的方式

var odoobaseURL = "http://localhost:8091/apI/Order"

但是我如何在 golang 中解决它?谢谢

解决方法

使用 Docker Compose 运行您的应用程序时,您必须通过它的服务名称来寻址目标容器。单独运行 Go 服务时,您将公开 odoo 服务端口,然后您可以使用 localhost 进行连接。