Files
jambotron/Dockerfile
T

31 lines
1.0 KiB
Docker

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