- Устранена двойная установка зависимостей в Dockerfile - Добавлены ENV переменные для пропуска ненужных бинарников - Создан .dockerignore для ускорения копирования файлов - Обновлены скрипты deploy.sh и update.sh с поддержкой --fast режима - Добавлена документация BUILD_OPTIMIZATION.md и QUICK_FIX.md Ожидаемое время сборки с --fast: 10-15 минут (было 30+ минут)
85 lines
2.9 KiB
Bash
Executable File
85 lines
2.9 KiB
Bash
Executable File
|
||
#!/bin/bash
|
||
|
||
# Скрипт для обновления приложения
|
||
# Использование:
|
||
# ./update.sh - просто перезапуск (без пересборки)
|
||
# ./update.sh --rebuild - пересборка с кешем и перезапуск (5-10 минут)
|
||
|
||
set -e
|
||
|
||
REBUILD=false
|
||
|
||
# Парсинг аргументов
|
||
while [[ $# -gt 0 ]]; do
|
||
case $1 in
|
||
--rebuild|-r)
|
||
REBUILD=true
|
||
shift
|
||
;;
|
||
--help|-h)
|
||
echo "Использование: $0 [--rebuild] [--help]"
|
||
echo ""
|
||
echo "Опции:"
|
||
echo " --rebuild, -r Пересобрать образ перед перезапуском"
|
||
echo " --help, -h Показать эту справку"
|
||
echo ""
|
||
echo "Примеры:"
|
||
echo " $0 # Просто перезапустить (быстро)"
|
||
echo " $0 --rebuild # Пересобрать и перезапустить"
|
||
echo ""
|
||
echo "Когда использовать --rebuild:"
|
||
echo " - Изменился код приложения"
|
||
echo " - Обновились зависимости (package.json)"
|
||
echo " - Изменилась конфигурация Next.js"
|
||
echo ""
|
||
echo "Когда НЕ нужен --rebuild:"
|
||
echo " - Изменились только переменные в .env"
|
||
echo " - Нужно применить миграции базы данных"
|
||
exit 0
|
||
;;
|
||
*)
|
||
echo "❌ Неизвестный параметр: $1"
|
||
echo "Используйте --help для справки"
|
||
exit 1
|
||
;;
|
||
esac
|
||
done
|
||
|
||
echo "🔄 Обновление Global-IT24..."
|
||
|
||
if [ "$REBUILD" = true ]; then
|
||
echo "🔨 Пересборка образа с использованием кеша (5-10 минут)..."
|
||
export DOCKER_BUILDKIT=1
|
||
export COMPOSE_DOCKER_CLI_BUILD=1
|
||
|
||
# Остановка контейнера
|
||
docker compose down
|
||
|
||
# Пересборка
|
||
docker compose build
|
||
|
||
# Запуск
|
||
docker compose up -d
|
||
else
|
||
echo "🔄 Перезапуск контейнера без пересборки..."
|
||
docker compose restart
|
||
fi
|
||
|
||
echo "⏳ Ожидание готовности..."
|
||
sleep 5
|
||
|
||
if docker compose ps | grep -q "Up"; then
|
||
echo "✅ Обновление завершено!"
|
||
docker compose ps
|
||
echo ""
|
||
echo "📝 Полезные команды:"
|
||
echo " Просмотр логов: ./logs.sh"
|
||
echo " Статус: ./status.sh"
|
||
echo " С пересборкой: ./update.sh --rebuild"
|
||
else
|
||
echo "❌ Ошибка при перезапуске!"
|
||
docker compose logs --tail=50
|
||
exit 1
|
||
fi
|