# Используем образ Maven для сборки
FROM maven:3.8-eclipse-temurin-21-alpine AS build

# Устанавливаем рабочую директорию
WORKDIR /app

# Копируем только pom.xml и загружаем зависимости
# Так зависимости закэшируются в Docker при изменении кода закэшированные слои с зависимостями будут подгружаться быстрее
COPY pom.xml .
RUN mvn dependency:go-offline

# Копируем остальные исходные файлы
COPY src ./src

# Собираем весь проект
RUN mvn clean package -DskipTests

# Используем официальный образ JDK для запуска собранного jar-файла
FROM eclipse-temurin:21-jdk-alpine

# Копируем jar-файл из предыдущего этапа
COPY --from=build /app/target/*.jar /app.jar

# Указываем команду для запуска приложения
CMD ["java", "-jar", "app.jar"]