gpt4 book ai didi

javascript - 无法在Docker容器之间发出HTTP请求

转载 作者:行者123 更新时间:2023-12-02 21:06:07 25 4
gpt4 key购买 nike

我有2个应用程序在docker-compose下作为服务运行。

  • React应用程序
  • Node.js服务器

  • 我正在尝试通过调用以下命令从我的React应用向Node.js服务器发出HTTP请求:fetch("http://backend:4000/")
    当我在GET http://backend:4000/ net::ERR_NAME_RESOLUTION_FAILED下访问我的React应用时,我在浏览器中得到http://localhost:3000
    这是我的docker-compose文件。
    version: "3.7"

    services:
    frontend:
    build:
    context: ./frontend
    volumes:
    - ./frontend:/app
    ports:
    - "3000:3000"
    depends_on:
    - "backend"

    backend:
    build:
    context: ./backend
    volumes:
    - ./backend:/app

    我正在运行Ubuntu,多年来一直遇到这个问题。没有任何真正的帮助-创建网络并为其分配服务,创建链接等。

    奇怪的是,当我进入React应用程序容器并运行bash命令时:ping backendcurl http://backend:4000,请求实际上可以正常工作。

    最佳答案

    我的猜测是,您正在尝试通过浏览器而不是前端容器来连接后端应用程序。如果是这样,那么您应该像这样显示后端端口;

      backend:
    container_name: backend
    build:
    context: ./backend
    volumes:
    - ./backend:/app
    ports: #whatever the port number
    - "4000:4000"

    那么您应该在react应用上将网址从 http://backend:4000更改为 http://localhost:4000

    关于javascript - 无法在Docker容器之间发出HTTP请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57931056/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com