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:
File diff suppressed because one or more lines are too long
31
.gitignore
vendored
31
.gitignore
vendored
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
Reference in New Issue
Block a user