48 lines
1.3 KiB
Bash
48 lines
1.3 KiB
Bash
#!/usr/bin/env bash
|
|
# Полная пересборка и перезапуск
|
|
set -euo pipefail
|
|
|
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
cd "${ROOT_DIR}"
|
|
|
|
echo "=== Shop redeploy ==="
|
|
|
|
if [[ -d .git ]]; then
|
|
echo "Обновление кода из git (сброс локальных правок скриптов)..."
|
|
git fetch origin main
|
|
git reset --hard origin/main
|
|
export APP_VERSION=$(git describe --tags --always 2>/dev/null || git rev-parse --short HEAD)
|
|
echo "Git: $(git log -1 --oneline)"
|
|
else
|
|
export APP_VERSION="manual"
|
|
fi
|
|
|
|
export BUILD_TIME=$(date -u +%Y-%m-%dT%H:%M:%SZ)
|
|
echo "Version: ${APP_VERSION}"
|
|
|
|
chmod +x scripts/*.sh 2>/dev/null || true
|
|
|
|
echo ""
|
|
echo "Останавливаем app..."
|
|
docker compose stop app 2>/dev/null || true
|
|
|
|
echo "Пересборка образа (без кэша)..."
|
|
docker compose build --no-cache app
|
|
|
|
echo "Запуск контейнеров..."
|
|
docker compose up -d --force-recreate app caddy
|
|
|
|
echo ""
|
|
echo "Ожидание запуска..."
|
|
sleep 3
|
|
|
|
echo ""
|
|
echo "Проверка версии:"
|
|
curl -sf "http://127.0.0.1/health" 2>/dev/null || curl -sf "http://localhost/health" || docker compose exec -T app wget -qO- http://127.0.0.1:8080/health
|
|
|
|
echo ""
|
|
echo ""
|
|
IP=$(hostname -I | awk '{print $1}')
|
|
echo "Готово: http://${IP}"
|
|
echo "Логи: docker compose logs -f app"
|