Files
LMS/deploy/deploy.sh

74 lines
2.3 KiB
Bash
Executable File
Raw 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.

#!/usr/bin/env bash
# Деплой LMS в Docker на сервере. Java на хосте не требуется.
#
# ./deploy/deploy.sh # сборка + запуск/обновление
# ./deploy/deploy.sh logs web # логи сервиса
# ./deploy/deploy.sh ps
# ./deploy/deploy.sh down # остановить (данные сохраняются в volume)
set -euo pipefail
cd "$(dirname "$0")/.."
COMPOSE="docker compose -f docker-compose.prod.yml --env-file .env.prod"
if ! command -v docker >/dev/null 2>&1 || ! docker compose version >/dev/null 2>&1; then
echo "Ошибка: нужен Docker с плагином compose v2." >&2
exit 1
fi
if [[ ! -f .env.prod ]]; then
if [[ -f .env.prod.example ]]; then
cp .env.prod.example .env.prod
echo "Создан .env.prod из примера. ОБЯЗАТЕЛЬНО смените LMS_DB_PASSWORD и повторите запуск." >&2
exit 1
fi
echo "Не найден .env.prod" >&2
exit 1
fi
cmd="${1:-up}"
case "$cmd" in
up)
echo ">> Резервная копия перед обновлением (обязательно)..."
./deploy/backup.sh backup --if-running
echo ">> Сборка образов (Gradle внутри Docker, сервер Java не требует)..."
$COMPOSE build
echo ">> Запуск сервисов..."
$COMPOSE up -d --remove-orphans
echo
$COMPOSE ps
echo
echo "Готово. Проверьте: curl -fsS http://127.0.0.1:${LMS_WEB_PORT:-8090}/actuator/health"
echo "Первый запуск: откройте https://<домен>/setup и создайте администратора."
;;
logs)
$COMPOSE logs -f --tail=200 "${2:-web}"
;;
ps)
$COMPOSE ps
;;
down)
$COMPOSE down
;;
restart)
$COMPOSE restart "${2:-}"
;;
backup)
./deploy/backup.sh backup
;;
backups)
./deploy/backup.sh list
;;
verify)
./deploy/backup.sh verify "${2:-}"
;;
restore)
./deploy/backup.sh restore "${2:-}"
;;
*)
echo "usage: $0 [up|ps|logs <service>|restart [service]|down|backup|backups|verify <dir>|restore <dir>]" >&2
exit 1
;;
esac