Files
Star-wars-card-game/deploy.sh
2026-01-28 00:49:37 +03:00

64 lines
1.9 KiB
Bash

#!/bin/bash
# Скрипт для обновления и перезапуска приложения через Docker
# Использование: ./deploy.sh
set -e # Остановка при ошибке
echo "🚀 Начинаем обновление..."
echo ""
echo "📥 Шаг 1/4: Обновление кода из Git..."
git pull
if [ $? -eq 0 ]; then
echo "✅ Git pull выполнен успешно"
else
echo "❌ Ошибка при git pull"
exit 1
fi
echo ""
echo "🛑 Шаг 2/5: Остановка контейнеров..."
docker compose down
if [ $? -eq 0 ]; then
echo "✅ Контейнеры остановлены"
else
echo "❌ Ошибка при остановке контейнеров"
exit 1
fi
echo ""
echo "💾 Шаг 3/5: Остановка Redis (если запущен)..."
docker compose stop redis 2>/dev/null || true
echo "✅ Redis остановлен (если был запущен)"
echo ""
echo "🔨 Шаг 4/5: Сборка образов (без кеша)..."
docker compose build --no-cache
if [ $? -eq 0 ]; then
echo "✅ Образы собраны успешно"
else
echo "❌ Ошибка при сборке образов"
exit 1
fi
echo ""
echo "▶️ Шаг 5/5: Запуск контейнеров..."
docker compose up -d
if [ $? -eq 0 ]; then
echo "✅ Контейнеры запущены"
echo ""
echo "⏳ Ожидание готовности Redis..."
sleep 3
docker compose ps redis | grep -q "Up" && echo "✅ Redis запущен" || echo "⚠️ Redis не запущен (работаем без БД)"
else
echo "❌ Ошибка при запуске контейнеров"
exit 1
fi
echo ""
echo "🎉 Обновление завершено успешно!"
echo ""
echo "📊 Статус контейнеров:"
docker compose ps