有一个用 RubyOnRails 编写的后端和一个用 React (create-react-app) 编写的前端。前端配置代理
"proxy": {
"/api/*": {
"target": "http://0.0.0.0:3000/",
"ws": true,
"pathRewrite": {
"^/api": "/"
}
}
},
Docker-compose 用于运行
version: "3"
volumes:
app-gems:
driver: local
services:
db:
image: postgres
api:
build:
context: ./api
volumes:
- app-gems:/usr/local/bundle
- ./api:/usr/src/app
ports:
- "3000:3000"
depends_on:
- db
web:
build:
context: ./web
volumes:
- ./web:/usr/src/app
ports:
- "80:3000"
depends_on:
- api
通过它启动时docker-compose up
,代理不起作用(它只是找不到 localhost:3000)。如果你在端口 3000 上运行 api,并且前端是独立的,那么一切正常,为什么会这样?
因为 api 没有运行在 web 容器中,而你写 localhost... 你需要http://api:3000/