# 1. Этап сборки (Build stage)
# ОБНОВЛЕНО: Переходим на JDK 21
FROM eclipse-temurin:21-jdk-jammy AS build


# Устанавливаем Node.js v20 (требование Angular CLI)
RUN apt-get update && apt-get install -y curl \
    && curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
    && apt-get install -y nodejs \
    && apt-get clean

WORKDIR /app

# Копируем всё содержимое проекта
COPY . .

# Даем права на запуск Gradle
RUN chmod +x gradlew

# Устанавливаем зависимости фронтенда (с фиксом конфликтов версий)
RUN cd jambotron-ui && npm install --legacy-peer-deps

# Запускаем финальную сборку монолита
# Заменяем одну общую команду на две последовательные
RUN ./gradlew copyAngularBuild_prod --no-daemon
RUN ./gradlew bootJar -x test --no-daemon

# 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"]