diff --git a/Dockerfile b/Dockerfile index fb86206..764692f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,15 +1,27 @@ -#FROM openjdk:24 AS BUILD_IMAGE -#ENV APP_HOME=/jambotron -#RUN mkdir -p $APP_HOME/src/main/java -#WORKDIR $APP_HOME -#COPY ./build.gradle ./gradlew ./gradlew.bat $APP_HOME/ -#COPY gradle $APP_HOME/gradle -#COPY ./src/ $APP_HOME/src/ -#RUN ./gradlew clean build +# Используем образ с JDK и Node.js, так как Gradle будет вызывать npm +FROM eclipse-temurin:17-jdk-jammy AS build + +# Установка Node.js (нужен для твоих задач buildAngular_prod) +RUN apt-get update && apt-get install -y curl && \ + curl -sL https://deb.nodesource.com/setup_18.x | bash - && \ + apt-get install -y nodejs + +WORKDIR /app + +# Копируем всё содержимое проекта +COPY . . + +# Даем права на выполнение Gradle +RUN chmod +x ./gradlew + +# Запускаем твою "педаль" через Gradle +# Она сама соберет Angular, почистит статику и соберет Jar +RUN ./gradlew copyAngularBuild_prod bootJar -x test + +# Финальный легковесный образ +FROM eclipse-temurin:17-jre-jammy +WORKDIR /app +COPY --from=build /app/build/libs/*.jar app.jar -FROM openjdk:24 -WORKDIR /jambotron/ -COPY '/build/libs/jambotron-0.0.1-SNAPSHOT.jar' '/app/jambotron.jar' -#COPY --from=BUILD_IMAGE '/jambotron/build/libs/jambotron-0.0.1-SNAPSHOT.jar' '/app/jambotron.jar' EXPOSE 8080 -CMD ["java","-jar","/app/jambotron.jar"] +ENTRYPOINT ["java", "-jar", "-Dspring.profiles.active=production", "app.jar"] \ No newline at end of file diff --git a/build.gradle b/build.gradle index 93fd53c..9598e7c 100644 --- a/build.gradle +++ b/build.gradle @@ -87,7 +87,8 @@ tasks.register('buildAngular_prod', Exec) { group = "_jambotron_build" workingDir './jambotron-ui' // Path to your Angular project (e.g., './angular-app') - executable 'npm.cmd' // Use 'npm' for Unix-like systems or 'npm.cmd' for Windows + // Use 'npm' for Unix-like systems or 'npm.cmd' for Windows + executable = Os.isFamily(Os.FAMILY_WINDOWS) ? 'npm.cmd' : 'npm' // Your Angular build command args = ['run', 'build']