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

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

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

但是当我使用 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 stack 网络的一部分,你必须配置你的前端服务连接到 http://localhost:6002 而不是 http://backend:4001

https://stackoverflow.com/questions/60019842/

相关文章:

javascript - 数组中的对象 数组中的对象 数组中的对象 JavaScript - 搜索

python - 选择特定行的 2D PyTorch 张量

r - 如何使用 token 在 R 中调用 API

docker - 我想在正在运行的 docker 容器中使用 docker sdk,并想在正在运行的

reactjs - SWR vs Isomorphic-unfetch 用于数据获取 Next.Js

kubernetes - 集群上的事件与 kustomize 之间的区别

c# - 空合并运算符不接受不同类型

javascript - 使用 axios 使用 get 方法发送嵌套的 json 数据

javascript - Angular 类型 'split' 上不存在属性 'ArrayBuffe

awk - 将 'u' 转换为 't' 而无需更改 FASTA 中的 header