# 1. Этап сборки (Build stage) FROM eclipse-temurin:17-jdk-jammy AS build # Устанавливаем 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 \ && apt-get clean WORKDIR /app # Копируем файлы проекта COPY . . # КРИТИЧЕСКИ ВАЖНО: # 1. Даем права на запуск Gradle RUN chmod +x gradlew # 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) 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"]