docker fix

This commit is contained in:
2025-09-18 16:47:07 +09:00
parent 29d6255f22
commit fdd0580554
8 changed files with 546 additions and 1 deletions

70
build-fix.sh Normal file
View File

@@ -0,0 +1,70 @@
#!/bin/bash
# build-fix.sh - Скрипт для исправления проблем сборки в Docker
# Цвета для вывода
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
RED='\033[0;31m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
echo -e "${BLUE}==================================================${NC}"
echo -e "${BLUE} Проверка и исправление проблем сборки ${NC}"
echo -e "${BLUE}==================================================${NC}"
# Проверяем наличие Dockerfile
if [ ! -f Dockerfile ]; then
echo -e "${RED}ОШИБКА: Dockerfile не найден в текущей директории!${NC}"
exit 1
fi
# Проверяем команду сборки в package.json и Dockerfile
echo -e "${YELLOW}Проверка конфигурации сборки...${NC}"
# Проверка команды сборки в Dockerfile
if grep -q "RUN npm run build" Dockerfile && ! grep -q "RUN npm run build:linux" Dockerfile; then
echo -e "${YELLOW}Найдена проблема: Dockerfile использует 'npm run build', что не работает в контейнере Linux${NC}"
echo -e "${BLUE}Исправление: заменяем на 'npm run build:linux'...${NC}"
# Создаем резервную копию
cp Dockerfile Dockerfile.bak
# Заменяем команду
sed -i "s/RUN npm run build/RUN npm run build:linux/g" Dockerfile
echo -e "${GREEN}✅ Dockerfile обновлен. Резервная копия сохранена как Dockerfile.bak${NC}"
else
echo -e "${GREEN}✅ Dockerfile уже использует корректную команду сборки${NC}"
fi
# Проверка команды сборки в package.json
if [ -f package.json ]; then
if grep -q "\"build:linux\":" package.json; then
echo -e "${GREEN}В package.json уже определена команда build:linux${NC}"
else
echo -e "${YELLOW}В package.json отсутствует команда build:linux${NC}"
echo -e "${BLUE}Добавляем команду build:linux...${NC}"
# Создаем резервную копию
cp package.json package.json.bak
# Получаем текущую команду build
build_cmd=$(grep -o '"build": "[^"]*"' package.json | sed 's/"build": "\(.*\)"/\1/')
# Создаем версию для Linux, заменяя xcopy на cp -R
linux_build_cmd=$(echo "$build_cmd" | sed 's/xcopy \/E \/I/cp -R/g' | sed 's/\\\\/\//g')
# Добавляем команду build:linux, если она не существует
if [[ "$linux_build_cmd" != "$build_cmd" ]]; then
sed -i "/\"build\":/a \ \"build:linux\": \"${linux_build_cmd}\"," package.json
echo -e "${GREEN}✅ Команда build:linux добавлена в package.json${NC}"
fi
fi
else
echo -e "${RED}ПРЕДУПРЕЖДЕНИЕ: package.json не найден в текущей директории!${NC}"
fi
echo -e "${BLUE}==================================================${NC}"
echo -e "${GREEN}Проверка и исправление завершены!${NC}"
echo -e "${BLUE}==================================================${NC}"
echo -e "${YELLOW}Для применения изменений выполните: docker-compose build${NC}"