26 lines
1.1 KiB
Docker
26 lines
1.1 KiB
Docker
|
# Используем образ 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"]
|