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

Fail to resolve docker compose service name from front end

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

我也启用了 cors,当我尝试使用 url http://backend:4001

从后端获取时,我收到一条错误消息 net::ERR_NAME_NOT_RESOLVED

但是当我使用 docker 内部 IP 地址时它工作正常,例如: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

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