fix: set executable bit for gradlew
This commit is contained in:
+14
-17
@@ -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"]
|
||||||
Reference in New Issue
Block a user