@echo off REM build-fix.bat - Скрипт для исправления проблем сборки в Docker для Windows echo ================================================== echo Проверка и исправление проблем сборки echo ================================================== REM Проверяем наличие Dockerfile if not exist Dockerfile ( echo ОШИБКА: Dockerfile не найден в текущей директории! exit /b 1 ) REM Проверяем команду сборки в Dockerfile echo Проверка конфигурации Dockerfile... findstr /c:"RUN npm run build" Dockerfile > nul if %errorlevel% equ 0 ( findstr /c:"RUN npm run build:linux" Dockerfile > nul if %errorlevel% neq 0 ( echo Найдена проблема: Dockerfile использует 'npm run build', что не работает в контейнере Linux echo Исправление: заменяем на 'npm run build:linux'... REM Создаем резервную копию copy Dockerfile Dockerfile.bak REM Заменяем команду powershell -Command "(Get-Content Dockerfile) -replace 'RUN npm run build', 'RUN npm run build:linux' | Set-Content Dockerfile" echo ✅ Dockerfile обновлен. Резервная копия сохранена как Dockerfile.bak ) else ( echo ✅ Dockerfile уже использует корректную команду сборки ) ) else ( echo ✅ Команда сборки не найдена в Dockerfile ) REM Проверка команды сборки в package.json if exist package.json ( findstr /c:"\"build:linux\":" package.json > nul if %errorlevel% equ 0 ( echo ✅ В package.json уже определена команда build:linux ) else ( echo В package.json отсутствует команда build:linux echo Рекомендуем добавить команду build:linux вручную: echo Найдите строку с "build": "tsc && xcopy /E /I src\\locales dist\\locales" echo И добавьте после нее: echo "build:linux": "tsc && cp -R src/locales dist/", ) ) else ( echo ПРЕДУПРЕЖДЕНИЕ: package.json не найден в текущей директории! ) echo ================================================== echo Проверка и исправление завершены! echo ================================================== echo Для применения изменений выполните: docker-compose build pause