【发布时间】:2020-03-22 17:44:18
【问题描述】:
所以我正在为 React 应用程序开发一个基本的 Express 后端。 请求是这样发出的:
axios.get(`${serverLocation}/api/graph/32`).then(res => {
this.setState({datag: res.data});
for(var key in this.state) {
data.push(this.state[key]);
}
});
服务器位置类似于http://IP:PORT。 api是正确的,我能看到的一切,在我的开发机器上都能正常工作。 React 在指定位置等向服务器发出成功请求。问题是,当我通过 docker-compose.yml 将其放入 2 个单独的 docker 容器中时,它将无法工作。 这是我的 docker-compose.yml:
version: '2.0'
services:
server:
restart: always
container_name: varno_domov_server
build: .
ports:
- "8088:5000"
links:
- react
networks:
- varnodomovnetwork
react:
restart: always
container_name: varno_domov_client
build: client/
ports:
- "8080:3000"
networks:
- varnodomovnetwork
networks:
varnodomovnetwork:
driver: bridge
我也有自定义的 Dockerfile,服务器看起来像:
FROM node:10
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 5000
CMD [ "npm", "start" ]
客户看起来像:
FROM node:10
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD [ "npm", "start" ]
如果您已经阅读了这么多,感谢您抽出宝贵的时间。我愿意接受任何关于 docker 的建议,React 部分不是我写的。如果需要任何其他信息,请在 cmets 中告诉我。隔离让我非常有时间:)
【问题讨论】:
-
serverLocation的值是多少? -
试试
server:8088 -
有没有http? StackOverflow cmets 正在为我删除那部分
-
我已经找到了问题所在。我会尽快回复这个帖子。我删除了我的 2 个 cmets,不让所有人都可以使用我的 IP 和域:p
标签: reactjs docker express axios