fix: move chmod after copy to fix permission denied
This commit is contained in:
+10
-13
@@ -1,7 +1,7 @@
|
||||
# 1. Этап сборки (Build stage)
|
||||
FROM eclipse-temurin:17-jdk-jammy AS build
|
||||
|
||||
# Устанавливаем Node.js и npm один раз
|
||||
# Устанавливаем Node.js и npm для сборки фронтенда
|
||||
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,26 +9,23 @@ RUN apt-get update && apt-get install -y curl \
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# Сначала копируем только файлы Gradle для кэширования слоев
|
||||
COPY gradlew .
|
||||
COPY gradle gradle
|
||||
RUN chmod +x gradlew
|
||||
|
||||
# Копируем всё остальное (убедись, что .gitignore разрешает папку src и т.д.)
|
||||
# Копируем абсолютно все файлы проекта (включая папку gradle и gradlew)
|
||||
COPY . .
|
||||
|
||||
# Запускаем сборку ОДИН раз.
|
||||
# Это соберет и фронтенд, и бэкенд в один JAR
|
||||
# КРИТИЧЕСКИ ВАЖНО: устанавливаем права сразу перед запуском сборки
|
||||
# Это лечит ошибку "Permission denied" (exit code: 126)
|
||||
RUN chmod +x gradlew
|
||||
|
||||
# Запускаем сборку один раз
|
||||
RUN ./gradlew copyAngularBuild_prod bootJar -x test --no-daemon
|
||||
|
||||
# 2. Финальный образ (Runtime stage)
|
||||
# 2. Финальный легковесный образ (Runtime stage)
|
||||
FROM eclipse-temurin:17-jre-jammy
|
||||
WORKDIR /app
|
||||
|
||||
# Забираем собранный JAR из папки build/libs этапа build
|
||||
# Копируем собранный JAR из первого этапа
|
||||
COPY --from=build /app/build/libs/*.jar app.jar
|
||||
|
||||
EXPOSE 8080
|
||||
|
||||
# Запускаем с активным профилем prod
|
||||
# Используем профиль prod для подхвата настроек базы в Хельсинки
|
||||
ENTRYPOINT ["java", "-jar", "-Dspring.profiles.active=prod", "app.jar"]
|
||||
Reference in New Issue
Block a user