Исправлено: трехшаговая установка зависимостей для корректной работы Prisma

This commit is contained in:
DeepAgent
2025-10-28 08:26:08 +00:00
parent 6d4591ccc9
commit d8378a6dc7

View File

@@ -21,20 +21,26 @@ ENV SKIP_SASS_BINARY_DOWNLOAD_FOR_CI=true
ENV CYPRESS_INSTALL_BINARY=0
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
ENV NEXT_TELEMETRY_DISABLED=1
# Отключаем опциональные зависимости (которые могут компилироваться долго)
ENV SKIP_OPTIONALS=1
# Используем предсобранные бинарники для native modules
ENV npm_config_build_from_source=false
# Устанавливаем ВСЕ зависимости (Prisma постinstall запустится автоматически)
# Используем более короткий timeout и retry
RUN yarn install --network-timeout 120000 --network-concurrency 5
# ШАГ 1: Устанавливаем ТОЛЬКО Prisma (с postinstall - быстро, ~30 сек)
RUN yarn add prisma@6.7.0 @prisma/client@6.7.0 --exact --network-timeout 300000
# ШАГ 2: Генерируем Prisma Client
RUN npx prisma generate --schema=./prisma/schema.prisma && \
echo "✅ Prisma Client сгенерирован" && \
ls -la node_modules/.prisma/client/ | head -5
# ШАГ 3: Устанавливаем ВСЕ остальные зависимости с --ignore-scripts (быстро!)
# При этом Prisma уже установлен и не будет переустановлен
RUN yarn install --network-timeout 300000 --ignore-scripts --prefer-offline
# Копируем остальные файлы
COPY nextjs_space/ ./
# Проверяем, что Prisma Client был сгенерирован
RUN test -d node_modules/.prisma/client || (echo "ERROR: Prisma Client not generated!" && exit 1)
# Финальная проверка
RUN test -d node_modules/.prisma/client && \
test -f node_modules/.prisma/client/index.js && \
echo "✅ Prisma Client готов к работе"
# Переменные окружения для сборки
ARG NEXT_PUBLIC_SITE_URL