gpt4 book ai didi

reactjs - Docker ReactJS与其他容器的通信

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

我似乎无法使用Docker VPN从网站向我的后端发送http请求。

我有这个docker-compose文件:

version: '3.7'

services:
frontend:
ports:
- 5001:5001
build: "./..."
restapi:
build: "./.../"
command: gunicorn rest.wsgi:application --bind 0.0.0.0:8000
expose:
- 8000
depends_on:
- db
db:
image: postgres:10.5-alpine
volumes:
- postgres_data:/var/lib/postgresql/data/

现在,从我的响应前端,我正在尝试发送发布请求
axios.post('http://restapi:8000/rest/', {data}, {headers})

->请求只是失败,并且永远无法进入我的restapi服务

如果我将我的容器放入容器中: docker exec -it "container-id" sh,然后向网址发送 wget(curl)请求,则一切正常。

我假设,一旦网站在浏览器中运行,我就离开了容器,因此离开了docker的VPN?

但是,如何从React前端跨容器发出请求?

最佳答案

您的容器可以通过服务名称彼此看到。但是浏览器正在尝试以客户端身份访问。因此,是的,当您部署到VM时,一切都会正常。为了测试本地部署,客户端需要知道restapi在哪里,因此您需要在主机中包括:

    <docker-ip or localhost>     restapi

更新:如果后端在前端中也可用,请使用相对路径。
  axios.post('/rest/', {data}, {headers})

关于reactjs - Docker ReactJS与其他容器的通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55195908/

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