docker fix
This commit is contained in:
70
build-fix.sh
Normal file
70
build-fix.sh
Normal 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}"
|
||||
Reference in New Issue
Block a user