社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  docker

Docker用react应用编写网络问题

praventz • 5 年前 • 1672 次点击  

我正在运行一个react应用程序和一个json服务器,其中包含docker compose。


fetch('localhost:8080/classes')
    .then(response => response.json())
    .then(classes => this.setState({classlist:classes}));

这是我的docker撰写文件:

version: "3"
services:
    frontend:
        container_name: react_app
        build:
            context: ./client
            dockerfile: Dockerfile
        image: praventz/react_app
        ports:
            - "3000:3000"
        volumes:
            - ./client:/usr/src/app
    backend:
        container_name: json_server
        build:
            context: ./server
            dockerfile: Dockerfile
        image: praventz/json_server
        ports:
            - "8080:8080"
        volumes:
            - ./server:/usr/src/app

在我的本地计算机上,我使用192.168.99.100:3000查看我的react应用程序

我使用192.168.99.100:8080来查看json服务器,但似乎无法将它们与以下任何一个连接起来:

backend:8080/classes

json_server:8080/classes

backend/classes

json_server/classes

{host:"json_server/classes", port:8080}

{host:"backend/classes", port:8080}

我应该在fetch()中放入什么?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/57099
文章 [ 1 ]  |  最新文章 5 年前
David Maze
Reply   •   1 楼
David Maze    6 年前

请记住,React应用程序总是在某些用户的浏览器中运行;它不知道Docker是否参与其中,并且无法访问或使用任何与Docker相关的网络设置。

在本地计算机上,我使用[…]192.168.99.100:8080查看json服务器

那么这也是您的React应用程序所需要的。

/api 到后端容器并将其他url转发到前端容器(或者更好的是,运行类似Webpack的工具,将React应用程序编译为静态文件并直接提供该服务)。如果您有这个设置,那么React应用程序可以使用一个路径 /api/v1/... 在没有主机的情况下,它将被解析为相对于浏览器认为的“当前主机”的任何内容,而该主机通常应该是代理。