当我在 AWS 服务器生产中运行应用程序时,我无法向后端容器发送 HTTP 请求。但是,当我在本地运行应用程序时,我可以很好地向后端发出请求。为了提出请求,我使用 fetch:
fetch('http://localhost:8000/something')
下面是项目结构的样子:
.
├── docker-compose.yml
|
├── backend
│ ├── Dockerfile
│ └── server.js
|
└── frontend
├── Dockerfile
├── package.json
├── public
│ └── index.html
└── src
├── components
├── data
├── index.js
├── routes.js
├── static
├── tests
└── views
docker-compose.yml:
version: '3'
services:
frontend:
build:
context: .
dockerfile: frontend/Dockerfile
volumes:
- ./frontend:/frontend
ports:
- "80:5000"
links:
- backend
backend:
build:
context: .
dockerfile: backend/Dockerfile
volumes:
- ./backend:/backend
ports:
- "8000:8000"
前端的 Dockerfile:
FROM node:latest
RUN mkdir -p /frontend
WORKDIR /frontend
ADD . /frontend
VOLUME ["/frontend"]
EXPOSE 5000
CMD yarn && yarn build && yarn global add serve && serve -s build
后端的 Dockerfile:
FROM node:latest
RUN mkdir -p /backend
WORKDIR /backend
ADD . /backend
VOLUME ["/backend"]
EXPOSE 8000
CMD yarn && yarn start
有人可以解释我的配置有什么问题吗?我很困惑,因为它在本地没有任何问题。