无法从前端解析 docker compose 服务名称

Bma*_*max 3 docker dockerfile docker-compose docker-network

您好,我是使用 docker 进行开发的新手。我试图在这里从前端(react)到后端(express.js)进行通信。

net::ERR_NAME_NOT_RESOLVED我也启用了 cors,当尝试使用 url 从后端获取时,出现错误http://backend:4001

但当我使用 docker 内部 IPAddress 时它就可以工作,例如:http://172.18.0.3:4001

以下是我的 docker-compose.yml 文件。

请提供有关使其正常工作的建议,谢谢。

version: "3"

services:

  backend:
    build: ./api
    volumes:
      - ./api:/usr/src/api
    ports:
      - 6002:4001
    depends_on:
      - database

  database:
    image: mongo:4.0.15-xenial
    ports:
      - 27018:27017


  frontend:
    build: ./app
    volumes:
      - ./app:/usr/src/app
    ports:
      - 6001:3000
    links:
      - backend
    depends_on:
      - backend
Run Code Online (Sandbox Code Playgroud)

mam*_*man 9

它不会工作,因为你的浏览器(互联网客户端)不是docker堆栈网络的一部分,你必须配置你的前端服务来连接http://localhost:6002而不是http://backend:4001