【发布时间】:2019-11-25 10:27:25
【问题描述】:
我有一个问题。我创建了简单的 React 和 Spring-Boot 应用程序,并为两者创建了 dockerfile。 Spring-Boot 显示一些 API,React 向它发出请求。但是,它们都适用于端口(React - 3000 和 Spring-Boot - 8080)。当我提出请求时,我的 fetch 是这样的:
fetch("http://localhost:8080/projects")
我应该如何更改它,以便与 docker-compose 一起使用?因为当我在 docker-compose 文件中导出端口时,这个 fetch 会在容器内发出请求,而不是在容器外。
码头工人撰写:
version: '3'
services:
frontend:
image: "IMAGE/FRONTEND:latest"
ports:
- "3000:3000"
depends_on:
- backend
backend:
image: "IMAGE/BACKEND:latest"
ports:
- "8080:8080"
【问题讨论】:
-
添加你的 docker compose yml 和你得到的错误应该可以帮助人们解决这个问题。要深入了解它,您需要确保使用 api 容器的主机名从 react 应用程序进行调用。
-
嗯,我认为它不会向我自己的计算机的本地主机发出请求,而是向容器的本地主机发出请求,因此我认为应该以另一种方式指定此获取请求
-
前端配置在哪里找到后端
-
前端配置只发出诸如 fetch("localhost:8080/projects") 之类的请求。使用 spring-boot 公开。因此它可以在计算机上工作,在本地运行两个项目。但是在 docker 中,当您发出请求时像这样它会获取到 docker 的 localhost,而不是我的计算机。
标签: reactjs spring-boot docker docker-compose