У меня есть интерфейс реагирования (созданный с использованием Vite) и сервер загрузки Java Spring. Независимо от того, создаю ли я контейнеры из них обоих по отдельности и запускаю эти контейнеры отдельно или использую docker Compose, приложение не работает (интерфейс показывает: «Этот сайт недоступен, но пинг бэкэнда возвращает правильный ответ json» ). Однако, если я не использую контейнеры и просто запускаю интерфейс и серверную часть отдельно, серверная часть обслуживается на локальном хосте: 8080, а интерфейсная часть - на локальном хосте: 5173, а внешний интерфейс отображает приложение без проблем. Кто-нибудь знает. как это решить? Все, что я пробовал, не удалось (возиться с vite.config.ts, менять порты, имена контейнеров/образов и т. д.) Я предполагаю, что это проблема безопасности весенней загрузки, но я не знаю. не знаю, как это решить.
Файл Docker интерфейса:
FROM node:20-alpine
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm install
COPY src ./src
COPY index.html ./
COPY .eslintrc.cjs ./
COPY README.md ./
COPY tsconfig.json ./
COPY tsconfig.node.json ./
COPY vite.config.ts ./
RUN npm run build
EXPOSE 5173
CMD ["npm", "run", "start"]
бэкенд-файл Docker:
FROM openjdk:22
# Set the working directory inside the container
WORKDIR /app
# Copy the packaged Spring Boot application JAR file into the container
COPY target/sampleproject-0.0.1-SNAPSHOT.jar /app/sampleproject-0.0.1-SNAPSHOT.jar
# Expose the port your application runs on
EXPOSE 8080
# Command to run your application
CMD ["java", "-jar", "sampleproject-0.0.1-SNAPSHOT.jar"]
docker-compose.yaml:
services:
backend:
build: ./sampleproject
container_name: spring-boot-backend
ports:
- '8080:8080'
stdin_open: true
tty: true
frontend:
build: ./sampleprojectfrontend
container_name: react-frontend
ports:
- '5173:5173'
Подробнее здесь: https://stackoverflow.com/questions/785 ... er-compose