我在 docker 容器中运行一个简单的 react 应用程序。在开发过程中,我在 package.json
中使用代理 key 。指定我的后端 api url:"proxy": "http://localhost:5000"
当我运行 npm start
时一切正常本地。但是,当我 npm start
在 docker 容器内它指向 "http://localhost:3000"
.我也尝试手动设置代理,如下面的 Dockerfile 所示,但似乎没有任何效果:
FROM node:13-alpine
WORKDIR /app
# install dependencies
COPY package*.json ./
RUN npm install --silent
# copy source code
COPY src/ ./src/
COPY public/ ./public/
RUN npm config set proxy http://localhost:5000 # set manully
CMD ["npm", "start"]
我做错了什么还是不可能?
最佳答案
在 docker 中运行应用程序时,您需要将端口设置为后端服务而不是 localhost。例如,检查以下 docker 容器及其服务。我们在端口 3000
中运行前端和后端在端口 5000
中运行.因此,将 localhost 替换为 "proxy": "http://backend:5000"
version: '3'
services:
backend:
build: ./backend
ports:
- 5000:5000
frontend:
build: ./frontend
ports:
- 3000:3000
links:
- backend
command: npm start
关于reactjs - 在运行 react 应用程序的 Docker 容器中代理 API 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59003599/