73 lines
1.9 KiB
Bash
Executable File
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 ""
|