Docker-compose服务网络失败

时间:2019-08-27 16:22:34

标签: docker-compose

每当我尝试连接到后端服务时,我的客户服务都会说“ ERR_NAME_NOT_RESOLVED”。这是我的docker-compose文件:

version: "3.4"

services:
  client:
    build:
      context: ./client-app
    ports:
      - '5001:80'
  backend:
    build:
      context: .
    ports:
      - '5050:5000'

我让它对“ http://backend:5050/api/ ...”进行了GET调用,但这是我得到的错误。奇怪的是,将其切换到“ http://localhost:5050/api/ ...”即可。

有什么想法为什么会这样?就上下文而言,我的前端是NGINX上托管的React客户端,后端服务器是ASP.NET Core。

如果我分别启动每个容器并让客户端指向localhost,它将起作用。

谢谢!

2 个答案:

答案 0 :(得分:0)

我认为您用于后端路由的端口是错误的。端口5050已发布到您的Docker主机,这就是对http://localhost:5050/api/的调用起作用的原因。

相反,请使用后端容器的内部端口和GET http://backend:5000/api/

答案 1 :(得分:0)

从另一篇文章中找到...

AJAX请求是浏览器请求,而不是服务器端请求,并且您的浏览器不是mynetwork的一部分。发出ajax请求(客户端浏览器必须是公共域或具有服务节点端口的映射主机文件)。您仍然需要在浏览器主机中映射主机文件,或者在gui代码中使用带有服务节点端口的完整url。