#!/bin/bash # mozdIT Deploy Script — natív docker compose, Dokploy nélkül # Használat: ./deploy.sh [staging|production] # A szerveren fut (git pull + rebuild + indítás). set -euo pipefail ENV="$1" if [ "$ENV" != "staging" ] && [ "$ENV" != "production" ]; then echo "Hiba: Hiányzó vagy érvénytelen környezet paraméter." echo "Használat: ./deploy.sh staging VAGY ./deploy.sh production" exit 1 fi echo "🚀 Deploy indítása: [$ENV] környezet" # 1. Kód frissítése echo "📦 Kód frissítése a main ágról..." git pull origin main # 2. Környezeti változók (.env.) ENV_FILE=".env.${ENV}" if [ ! -f "$ENV_FILE" ]; then echo "❌ Hiba: $ENV_FILE fájl nem található." echo " Másold le a .env.example fájlt $ENV_FILE néven, és töltsd ki." exit 1 fi echo "🔑 Környezeti változók betöltése ($ENV_FILE)..." # 3. Docker konténerek újraépítése és indítása echo "🐳 Build és indítás..." docker compose --env-file "$ENV_FILE" -f docker-compose.prod.yml up --build -d # 4. Healthcheck echo "⏳ Healthcheck (max 60s)..." HEALTH_URL="http://localhost:${APP_PORT:-8080}/api/health" for i in $(seq 1 30); do if curl -sf "$HEALTH_URL" > /dev/null 2>&1; then echo "✅ Healthcheck OK: $HEALTH_URL" echo "✅ Deploy sikeres: [$ENV]" exit 0 fi sleep 2 done echo "❌ Healthcheck sikertelen: $HEALTH_URL" docker compose -f docker-compose.prod.yml logs app --tail 50 exit 1