# 1. Сборка (Build stage) FROM eclipse-temurin:17-jdk-jammy AS build # Устанавливаем Node.js для Angular RUN apt-get update && apt-get install -y curl \ && curl -fsSL https://deb.nodesource.com/setup_18.x | bash - \ && apt-get install -y nodejs \ && apt-get clean WORKDIR /app # Копируем Gradle wrapper (эти файлы мы разблокировали в .gitignore) COPY gradlew . COPY gradle gradle RUN chmod +x gradlew # Копируем исходники проекта COPY . . # Запускаем сборку: компилируем фронтенд, чистим статику и собираем JAR RUN ./gradlew copyAngularBuild_prod bootJar -x test # 2. Финальный образ (Runtime stage) FROM eclipse-temurin:17-jre-jammy WORKDIR /app # Забираем только готовый результат из этапа сборки COPY --from=build /app/build/libs/*.jar app.jar EXPOSE 8080 ENTRYPOINT ["java", "-jar", "-Dspring.profiles.active=prod", "app.jar"]