diff --git a/Dockerfile.simple b/Dockerfile.simple index a53f9d8..f3178bd 100644 --- a/Dockerfile.simple +++ b/Dockerfile.simple @@ -16,35 +16,31 @@ COPY nextjs_space/package.json nextjs_space/yarn.lock ./ # Копируем prisma схему (нужна для генерации клиента) COPY nextjs_space/prisma ./prisma -# Оптимизация: отключаем проблемные бинарники +# Оптимизация: АГРЕССИВНО отключаем ВСЕ компиляции ENV SKIP_SASS_BINARY_DOWNLOAD_FOR_CI=true ENV CYPRESS_INSTALL_BINARY=0 ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true ENV NEXT_TELEMETRY_DISABLED=1 +# Отключаем GYP компиляцию +ENV npm_config_build_from_source=false +ENV PYTHON=/usr/bin/python3 +ENV npm_config_optional=false +# Отключаем компиляцию canvas, sharp и других +ENV SHARP_IGNORE_GLOBAL_LIBVIPS=1 +ENV CANVAS_SKIP_INSTALL=1 -# ШАГ 1: Устанавливаем ВСЕ зависимости БЕЗ postinstall скриптов (быстро!) -RUN yarn install --ignore-scripts --network-timeout 300000 && \ - echo "✅ Зависимости установлены (без компиляции)" - -# ШАГ 2: Устанавливаем ТОЛЬКО Prisma С postinstall (для скачивания движков) -# Это перезапишет установку из шага 1, но уже с движками -RUN yarn add prisma@6.7.0 @prisma/client@6.7.0 --exact --network-timeout 300000 && \ - echo "✅ Prisma установлен с бинарными движками" - -# Копируем остальные файлы +# Копируем остальные файлы (нужны для Prisma) COPY nextjs_space/ ./ -# ШАГ 3: Генерируем Prisma Client +# РАДИКАЛЬНО: Устанавливаем ВСЕ (включая Prisma) с postinstall, +# но с агрессивной оптимизацией +RUN yarn install --network-timeout 300000 --network-concurrency 4 && \ + echo "✅ Зависимости установлены" + +# Генерируем Prisma Client (postinstall должен был запуститься автоматически) RUN npx prisma generate --schema=./prisma/schema.prisma && \ echo "✅ Prisma Client сгенерирован" -# ОТЛАДКА: Посмотрим что создалось -RUN echo "=== Проверка node_modules/.prisma/client ===" && \ - ls -la node_modules/.prisma/ || echo "Папка .prisma не существует" && \ - ls -la node_modules/.prisma/client/ || echo "Папка client не существует" && \ - echo "=== Проверка node_modules/@prisma/client ===" && \ - ls -la node_modules/@prisma/client/ | head -20 - # Переменные окружения для сборки ARG NEXT_PUBLIC_SITE_URL ENV NEXT_PUBLIC_SITE_URL=${NEXT_PUBLIC_SITE_URL:-http://localhost:3000}