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