Files
jambotron/Dockerfile
Liosha 0eaab7c26e caddy.header_up_1: "Upgrade {>Upgrade}"
caddy.header_up_2: "Connection {>Connection}"
2026-05-06 14:08:38 +03:00

42 lines
1.4 KiB
Docker

# 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
RUN apt-get update && apt-get install -y docker.io
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:21-jdk-jammy
# Устанавливаем и докер, и плагин компоуза
RUN apt-get update && \
apt-get install -y docker.io docker-compose-v2 && \
apt-get clean \
WORKDIR /app
COPY --from=build /app/build/libs/*.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "-Dspring.profiles.active=prod", "app.jar"]