From d5931fe97b4b0c92cac404ed41bf914e6d1827e6 Mon Sep 17 00:00:00 2001 From: Liosha Date: Sat, 25 Apr 2026 12:28:20 +0300 Subject: [PATCH] fix: angular CLI --- Dockerfile | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/Dockerfile b/Dockerfile index a8ef5b2..3b3e003 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # 1. Этап сборки (Build stage) FROM eclipse-temurin:17-jdk-jammy AS build -# Устанавливаем Node.js и npm для сборки фронтенда +# Устанавливаем Node.js RUN apt-get update && apt-get install -y curl \ && curl -fsSL https://deb.nodesource.com/setup_18.x | bash - \ && apt-get install -y nodejs \ @@ -9,23 +9,26 @@ RUN apt-get update && apt-get install -y curl \ WORKDIR /app -# Сначала копируем все файлы проекта +# Копируем файлы проекта COPY . . -# КРИТИЧЕСКИ ВАЖНО: устанавливаем права сразу после копирования -# Это лечит ошибку "Permission denied" (exit code: 126) +# КРИТИЧЕСКИ ВАЖНО: +# 1. Даем права на запуск Gradle RUN chmod +x gradlew -# Запускаем сборку один раз с флагом --no-daemon для стабильности в Docker +# 2. Переходим в папку с фронтендом и устанавливаем зависимости +# Предполагаем, что фронтенд лежит в корне или папке jambotron-ui +# Если папка называется иначе, подправь путь: +RUN cd src/main/angular && npm install + +# 3. Теперь запускаем общую сборку +# Gradle теперь найдет 'ng', так как node_modules будут готовы RUN ./gradlew copyAngularBuild_prod bootJar -x test --no-daemon -# 2. Финальный легковесный образ (Runtime stage) +# 2. Финальный образ (Runtime stage) FROM eclipse-temurin:17-jre-jammy WORKDIR /app - -# Копируем собранный JAR из первого этапа COPY --from=build /app/build/libs/*.jar app.jar EXPOSE 8080 -# Используем профиль prod для подхвата настроек базы в Хельсинки ENTRYPOINT ["java", "-jar", "-Dspring.profiles.active=prod", "app.jar"] \ No newline at end of file