Files
xiaoxia-saas/infra/docker/deploy-control.sh
T
Xiaoxia AI 6eb394d6ad
Deploy / Deploy Staging (push) Failing after 4m8s
Deploy / Deploy Production (push) Has been skipped
Tests / lint (push) Has been cancelled
Tests / test (push) Has been cancelled
feat: add deployment configs, systemd service, and tracker init scripts
2026-06-16 22:01:24 +08:00

52 lines
1.3 KiB
Bash

#!/bin/bash
# 服务器本地部署控制脚本
# 用法: ./deploy-control.sh [staging|production] [deploy|status|logs|restart]
set -eu
ENV="${1:-staging}"
ACTION="${2:-deploy}"
if [ "$ENV" = "staging" ]; then
WORKSPACE="/var/lib/xiaoxia-saas-staging"
COMPOSE_DIR="$WORKSPACE/repo/infra/docker"
DEPLOY_SCRIPT="$WORKSPACE/repo/infra/docker/deploy-staging.sh"
elif [ "$ENV" = "production" ]; then
WORKSPACE="/var/lib/xiaoxia-saas-production"
COMPOSE_DIR="$WORKSPACE/repo/infra/docker"
DEPLOY_SCRIPT="$WORKSPACE/repo/infra/docker/deploy-production.sh"
else
echo "Usage: $0 [staging|production] [deploy|status|logs|restart]"
exit 1
fi
cd "$COMPOSE_DIR"
case "$ACTION" in
deploy)
echo "开始部署 $ENV 环境..."
chmod +x "$DEPLOY_SCRIPT"
"$DEPLOY_SCRIPT" 2>&1 | tee "$WORKSPACE/deploy.log"
;;
status)
docker compose ps
;;
logs)
SERVICE="${3:-api}"
docker compose logs -f --tail=100 "$SERVICE"
;;
restart)
SERVICE="${3:-all}"
if [ "$SERVICE" = "all" ]; then
docker compose restart
else
docker compose restart "$SERVICE"
fi
;;
*)
echo "未知操作: $ACTION"
echo "支持: deploy, status, logs, restart"
exit 1
;;
esac