Files

73 lines
1.9 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
DEPLOY_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
SRC_DIR="/opt/konturai-migration/call-center-src"
IMAGE="call-center-app:active-aimaq"
SERVICES=(
auth-service
audit-service
customer-service
interaction-service
voice-adapter-service
recording-service
reporting-service
sales-service
asterisk-bridge-service
api-gateway
)
echo ""
echo "=== AIMAQ BACKEND DEPLOY ==="
echo "Источник : $SRC_DIR"
echo "Образ : $IMAGE"
echo ""
# 1. Сборка образа
echo "[1/4] Сборка Docker образа..."
docker build -t "$IMAGE" "$SRC_DIR"
echo " Готово."
# 2. Миграции БД
echo "[2/4] Запуск миграций БД..."
cd "$DEPLOY_DIR"
docker compose -f docker-compose.minimal.yml run --rm migrate
echo " Готово."
# 3. Перезапуск сервисов
echo "[3/4] Перезапуск сервисов..."
docker compose -f docker-compose.minimal.yml up -d --no-deps --force-recreate "${SERVICES[@]}"
echo " Готово."
# 4. Проверка
echo "[4/4] Проверка..."
sleep 5
FAILED=()
for SERVICE in "${SERVICES[@]}"; do
CONTAINER="aimaq-call-center-${SERVICE}-1"
# api-gateway имеет отдельное имя
if [ "$SERVICE" = "api-gateway" ]; then
CONTAINER="aimaq-call-center-app"
fi
STATUS=$(docker inspect --format '{{.State.Status}}' "$CONTAINER" 2>/dev/null || echo "not found")
if [ "$STATUS" != "running" ]; then
FAILED+=("$SERVICE ($STATUS)")
fi
done
if [ ${#FAILED[@]} -eq 0 ]; then
echo " Все сервисы запущены."
else
echo " ОШИБКА: следующие сервисы не запустились:"
for F in "${FAILED[@]}"; do
echo " - $F"
done
exit 1
fi
echo ""
echo "=== ДЕПЛОЙ ЗАВЕРШЁН ==="
echo "API: https://aimaq.konturai.kz/proxy/"
echo ""