【问题标题】:Error: getaddrinfo ENOTFOUND with docker-compose server definition错误:带有 docker-compose 服务器定义的 getaddrinfo ENOTFOUND
【发布时间】: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


【解决方案1】:

我相信你的网址应该是

前端:8081/firestore?collection=test&field=nombre&value=xxxx

而不是

firestore_manager_server:8081/firestore?collection=test&field=nombre&value=xxxx

【讨论】:

    猜你喜欢
    • 2020-09-20
    • 1970-01-01
    • 2017-10-16
    • 1970-01-01
    • 2018-03-03
    • 2014-10-20
    • 2022-08-11
    • 2022-12-22
    • 2018-05-24
    相关资源
    最近更新 更多