[英]Error occurred while trying to proxy request while running on Docker
我正在嘗試將我的 React + Spring 引導應用程序部署到 docker。 然而,來自后端的 api 似乎沒有與我的 React 應用程序連接,盡管我已經檢查了 Spring 引導服務器的端口 8080 並檢查了 React 應用程序中的 proxy.js。 它不斷執行“嘗試代理請求時發生錯誤”錯誤。 請幫我回答這個問題!
這是proxy.js
export default {
dev: {
'/api/': {
target: 'http://localhost:8080/',
changeOrigin: true,
pathRewrite: {
'^': '',
},
},
}
}
這是 React App 的 dockerfile
FROM node:12
# Create app directory
WORKDIR /usr/src/app
# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY package*.json ./
RUN npm install
# If you are building your code for production
# RUN npm ci --only=production
# Bundle app source
COPY . .
EXPOSE 8000
ENTRYPOINT npm run dev
后端 Dockerfile
FROM openjdk:8-jdk-alpine
EXPOSE 8080
RUN addgroup -S spring && adduser -S spring -G spring
USER spring:spring
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
和 docker-compose.yml 文件
version: "3"
services:
server:
build:
context: ./service
dockerfile: ./Dockerfile
ports:
- "8080:8080"
image: academy-server
client:
build:
context: ./web
dockerfile: ./Dockerfile
ports:
- "8000:8000"
image: academy-client
links:
- "server"
在 Docker 中運行就像在兩台不同的機器上運行前端和后端一樣。 因此,您不能使用 localhost 與您的后端對話。 相反,您需要使用 docker-compose 中定義的服務名稱。 因此,在您的情況下,您應該使用“服務器”而不是 localhost。
Docker-compose 自動創建一個內部網絡,將您的兩個容器連接到該網絡並使用服務名稱在容器之間進行路由
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.