Files
bogazici-api/scripts/deploy-prod.sh
Bulut Kuru 8bd35c425d
Some checks reported errors
continuous-integration/drone/push Build was killed
deploy sh5
2026-03-27 20:53:18 +03:00

73 lines
2.5 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
set -euo pipefail
PROJECT_DIR="/opt/projects/bogazici/corporate-api/prod/api"
ENV_SOURCE="/opt/projects/bogazici/corporate-api/prod/.env.prod"
BRANCH="main"
CONTAINER="bdc-api-prod"
COMPOSE_FILE="docker-compose.prod.yml"
COMPOSE_PROJECT="bogazici-api-prod"
UPLOADS_DIR="/opt/projects/bogazici/corporate-api/prod/uploads"
echo "🚀 [API] Production deploy başlatılıyor..."
cd "$PROJECT_DIR"
git config --global --add safe.directory "$PROJECT_DIR" || true
find storage -type d -exec chmod 2775 {} \; 2>/dev/null || true
find storage -type f -exec chmod 664 {} \; 2>/dev/null || true
find bootstrap/cache -type d -exec chmod 2775 {} \; 2>/dev/null || true
find bootstrap/cache -type f -exec chmod 664 {} \; 2>/dev/null || true
git fetch origin
git checkout "$BRANCH"
git reset --hard "origin/$BRANCH"
git clean -fd -e .env
if [ ! -f "$ENV_SOURCE" ]; then
echo "❌ HATA: env dosyası yok -> $ENV_SOURCE"
exit 1
fi
cp "$ENV_SOURCE" .env
if ! grep -q '^APP_KEY=base64:' .env; then
echo "❌ HATA: APP_KEY eksik veya boş -> $ENV_SOURCE"
exit 1
fi
mkdir -p "$UPLOADS_DIR"
chmod 2775 "$UPLOADS_DIR" 2>/dev/null || true
docker rm -f bogazici-api-prod-bdc-api-prod-1 2>/dev/null || true
docker rm -f bdc-api-prod 2>/dev/null || true
docker compose -p "$COMPOSE_PROJECT" -f "$COMPOSE_FILE" down --remove-orphans || true
docker compose -p "$COMPOSE_PROJECT" -f "$COMPOSE_FILE" up -d --build
echo "⏳ Container hazır olması bekleniyor..."
for i in {1..30}; do
if docker compose -p "$COMPOSE_PROJECT" -f "$COMPOSE_FILE" ps --status running | grep -q "$CONTAINER"; then
echo "✅ Container ayakta"
break
fi
if [ "$i" -eq 30 ]; then
echo "❌ HATA: Container zamanında ayağa kalkmadı"
docker compose -p "$COMPOSE_PROJECT" -f "$COMPOSE_FILE" logs --tail=100
exit 1
fi
sleep 1
done
docker compose -p "$COMPOSE_PROJECT" -f "$COMPOSE_FILE" exec -T "$CONTAINER" composer install --no-interaction --prefer-dist --optimize-autoloader --no-dev
docker compose -p "$COMPOSE_PROJECT" -f "$COMPOSE_FILE" exec -T "$CONTAINER" php artisan optimize:clear
docker compose -p "$COMPOSE_PROJECT" -f "$COMPOSE_FILE" exec -T "$CONTAINER" php artisan config:cache
docker compose -p "$COMPOSE_PROJECT" -f "$COMPOSE_FILE" exec -T "$CONTAINER" php artisan route:cache
docker compose -p "$COMPOSE_PROJECT" -f "$COMPOSE_FILE" exec -T "$CONTAINER" php artisan view:cache
docker image prune -f 2>/dev/null || true
echo "✅ [API] Production deploy tamamlandı"