Fix: yarn.lock symlink issue in Docker build

- Updated Dockerfile.simple to handle yarn.lock correctly
- Added script in deploy-simple.sh to convert symlink to real file
- Updated .gitignore to ignore converted yarn.lock
- This fixes the 'yarn.lock not found' error during Docker build
This commit is contained in:
DeepAgent
2025-10-29 14:18:58 +00:00
parent f71fc97097
commit 23631e4ab9
4 changed files with 43 additions and 8 deletions

File diff suppressed because one or more lines are too long

31
.gitignore vendored
View File

@@ -1,8 +1,5 @@
# Dependencies
**/node_modules **/node_modules
.next
.cache
.build
*.nfs*
**/.yarn/ **/.yarn/
!**/.yarn/patches !**/.yarn/patches
!**/.yarn/plugins !**/.yarn/plugins
@@ -12,12 +9,36 @@
!**/.yarn/cache !**/.yarn/cache
**/.yarn/build-state.yml **/.yarn/build-state.yml
**/.yarn/install-state.gz **/.yarn/install-state.gz
# Next.js
.next
.cache
.build
dist dist
target target
out out
*.tsbuildinfo
# Environment variables (CRITICAL - never commit!)
.env
.env.local
.env.production
.env.*.local
# Docker generated files
docker-compose.simple.yml
# Yarn lockfile (if converted from symlink during Docker build)
nextjs_space/yarn.lock
# Logs
.deploy .deploy
.logs .logs
*.tsbuildinfo *.nfs*
npm-debug.log* npm-debug.log*
yarn-debug.log* yarn-debug.log*
yarn-error.log* yarn-error.log*
# OS files
.DS_Store
Thumbs.db

View File

@@ -10,8 +10,9 @@ RUN apk add --no-cache \
WORKDIR /app WORKDIR /app
# Копируем package.json и yarn.lock # Копируем package.json и yarn.lock (если есть)
COPY nextjs_space/package.json nextjs_space/yarn.lock ./ COPY nextjs_space/package.json ./
COPY nextjs_space/yarn.lock* ./
# Копируем prisma схему (нужна для генерации клиента) # Копируем prisma схему (нужна для генерации клиента)
COPY nextjs_space/prisma ./prisma COPY nextjs_space/prisma ./prisma

View File

@@ -26,6 +26,19 @@ docker compose down 2>/dev/null || true
echo "⚡ Быстрая сборка с упрощенным Dockerfile (15-20 минут)..." echo "⚡ Быстрая сборка с упрощенным Dockerfile (15-20 минут)..."
echo "💡 Используется Dockerfile.simple - проще и быстрее для первой сборки" echo "💡 Используется Dockerfile.simple - проще и быстрее для первой сборки"
# Создаём реальный yarn.lock (symlink не работает в Docker)
echo "🔗 Создаём реальный yarn.lock из symlink..."
if [ -L nextjs_space/yarn.lock ]; then
# Если это symlink, копируем его содержимое
cp -L nextjs_space/yarn.lock nextjs_space/yarn.lock.tmp
rm nextjs_space/yarn.lock
mv nextjs_space/yarn.lock.tmp nextjs_space/yarn.lock
echo "✅ yarn.lock преобразован в реальный файл"
elif [ ! -f nextjs_space/yarn.lock ]; then
# Если файла нет вообще, создаём пустой
echo "⚠️ yarn.lock не найден, будет создан при установке зависимостей"
fi
# Создаем временный docker-compose файл с Dockerfile.simple # Создаем временный docker-compose файл с Dockerfile.simple
cat > docker-compose.simple.yml << 'EOFCOMPOSE' cat > docker-compose.simple.yml << 'EOFCOMPOSE'
services: services: