fix: set executable bit for gradlew

This commit is contained in:
2026-04-25 11:50:07 +03:00
parent 825d6b6773
commit bf800175b9
+14 -17
View File
@@ -1,34 +1,31 @@
# Используем образ с JDK и Node.js, так как Gradle будет вызывать npm # 1. Сборка (Build stage)
FROM eclipse-temurin:17-jdk-jammy AS build FROM eclipse-temurin:17-jdk-jammy AS build
# Установка Node.js (нужен для твоих задач buildAngular_prod) # Устанавливаем Node.js для Angular
RUN apt-get update && apt-get install -y curl && \ RUN apt-get update && apt-get install -y curl \
curl -sL https://deb.nodesource.com/setup_18.x | bash - && \ && curl -fsSL https://deb.nodesource.com/setup_18.x | bash - \
apt-get install -y nodejs && apt-get install -y nodejs \
&& apt-get clean
WORKDIR /app WORKDIR /app
# 1. Сначала копируем файлы обертки Gradle
# Копируем Gradle wrapper (эти файлы мы разблокировали в .gitignore)
COPY gradlew . COPY gradlew .
COPY gradle gradle COPY gradle gradle
# 2. Даем права на исполнение
RUN chmod +x gradlew RUN chmod +x gradlew
# 3. Копируем исходники (включая Angular и Java части) # Копируем исходники проекта
COPY . . COPY . .
# КРИТИЧЕСКИ ВАЖНО: принудительно даем права на выполнение # Запускаем сборку: компилируем фронтенд, чистим статику и собираем JAR
RUN chmod +x gradlew
# Теперь запускаем сборку - теперь ошибки 126 (Permission denied) не будет
RUN ./gradlew copyAngularBuild_prod bootJar -x test
# 4. Теперь твоя "педаль" сработает
RUN ./gradlew copyAngularBuild_prod bootJar -x test RUN ./gradlew copyAngularBuild_prod bootJar -x test
# Финальный легковесный образ # 2. Финальный образ (Runtime stage)
FROM eclipse-temurin:17-jre-jammy FROM eclipse-temurin:17-jre-jammy
WORKDIR /app WORKDIR /app
# Забираем только готовый результат из этапа сборки
COPY --from=build /app/build/libs/*.jar app.jar COPY --from=build /app/build/libs/*.jar app.jar
EXPOSE 8080 EXPOSE 8080
ENTRYPOINT ["java", "-jar", "-Dspring.profiles.active=production", "app.jar"] ENTRYPOINT ["java", "-jar", "-Dspring.profiles.active=prod", "app.jar"]