【发布时间】:2020-10-19 04:11:37
【问题描述】:
我正在构建一个反应节点应用程序,我正在使用 docker-compose 我的 docker compose 定义如下所示:
version: "3"
services:
frontend:
stdin_open: true
container_name: firestore_manager
build:
context: ./client/firestore-app
dockerfile: DockerFile
image: rasilvap/firestore_manager
ports:
- "3000:3000"
volumes:
- ./client/firestore-app:/app
environment:
- BACKEND_HOST=backend
- BACKEND_PORT=8081
depends_on:
- backend
backend:
container_name: firestore_manager_server
build:
context: ./server
dockerfile: Dockerfile
image: rasilvap/firestore_manager_server
ports:
- "8081:8081"
volumes:
- ./server:/app
environment:
- BACKEND_HOST=backend
- BACKEND_PORT=8081
我正在尝试使用 docker-compose 文件中定义的 backend 前缀访问 NodeJs 后端端点,但我得到了一个 Error: getaddrinfo ENOTFOUND firestore_manager_server,使用容器名称也是如此:firestore_manager_server .
你可以在下面的网址中看到:
firestore_manager_server:8081/firestore?collection=test&field=nombre&value=xxxx
backend:8081/firestore?collection=test&field=nombre&value=xxxx
我使用 localhost 没有任何问题。
接下来是docker ps命令的结果:
有什么想法吗?
【问题讨论】:
-
您的前端是否使用了网址
firestore_manager_server:8081? -
是的,但它显示错误。
-
docker ps的结果是什么? -
我用结果编辑了问题。
-
您的 React 应用程序正在使用 localhost,输出中的 0.0.0.0:3000,它应该使用后端:localhost:8081,因为后端暴露了该端口并且在不同的网络中运行
标签: node.js docker-compose host