feat(mpc-system): 添加单服务管理命令到deploy.sh

新增命令:
- start-svc: 启动单个服务
- stop-svc: 停止单个服务
- restart-svc: 重启单个服务
- rebuild-svc: 重建并重启服务 (支持--no-cache)

支持开发模式和生产模式

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
hailin 2025-12-28 04:23:22 -08:00
parent 1af5780b19
commit cc3644de9d
1 changed files with 126 additions and 1 deletions

View File

@ -212,6 +212,55 @@ dev_commands() {
echo ""
;;
start-svc)
if [ -z "$2" ]; then
log_error "Please specify a service name"
return 1
fi
log_info "Starting $2..."
docker compose up -d "$2"
log_success "$2 started"
;;
stop-svc)
if [ -z "$2" ]; then
log_error "Please specify a service name"
return 1
fi
log_info "Stopping $2..."
docker compose stop "$2"
log_success "$2 stopped"
;;
restart-svc)
if [ -z "$2" ]; then
log_error "Please specify a service name"
return 1
fi
log_info "Restarting $2..."
docker compose stop "$2"
docker compose up -d "$2"
log_success "$2 restarted"
;;
rebuild-svc)
if [ -z "$2" ]; then
log_error "Please specify a service name"
return 1
fi
local svc="$2"
local no_cache="$3"
log_info "Rebuilding $svc..."
if [ "$no_cache" = "--no-cache" ]; then
log_info "Building without cache..."
docker compose build --no-cache "$svc"
else
docker compose build "$svc"
fi
docker compose up -d "$svc"
log_success "$svc rebuilt and restarted"
;;
*)
return 1
;;
@ -314,6 +363,55 @@ prod_commands() {
fi
;;
start-svc)
if [ -z "$2" ]; then
log_error "Please specify a service name"
return 1
fi
log_info "Starting $2..."
docker compose -f docker-compose.prod.yml up -d "$2"
log_success "$2 started"
;;
stop-svc)
if [ -z "$2" ]; then
log_error "Please specify a service name"
return 1
fi
log_info "Stopping $2..."
docker compose -f docker-compose.prod.yml stop "$2"
log_success "$2 stopped"
;;
restart-svc)
if [ -z "$2" ]; then
log_error "Please specify a service name"
return 1
fi
log_info "Restarting $2..."
docker compose -f docker-compose.prod.yml stop "$2"
docker compose -f docker-compose.prod.yml up -d "$2"
log_success "$2 restarted"
;;
rebuild-svc)
if [ -z "$2" ]; then
log_error "Please specify a service name"
return 1
fi
local svc="$2"
local no_cache="$3"
log_info "Rebuilding $svc..."
if [ "$no_cache" = "--no-cache" ]; then
log_info "Building without cache..."
docker compose -f docker-compose.prod.yml build --no-cache "$svc"
else
docker compose -f docker-compose.prod.yml build "$svc"
fi
docker compose -f docker-compose.prod.yml up -d "$svc"
log_success "$svc rebuilt and restarted"
;;
*)
return 1
;;
@ -435,39 +533,66 @@ show_help() {
echo ""
echo "Development Commands (default mode):"
echo " $0 build Build all Docker images"
echo " $0 build-no-cache Build all images without cache"
echo " $0 up|start Start all services"
echo " $0 down|stop Stop all services"
echo " $0 restart Restart all services"
echo " $0 logs [service] Follow logs"
echo " $0 logs-tail [svc] Show last 100 lines of logs"
echo " $0 status|ps Show services status"
echo " $0 health Check all services health"
echo " $0 clean Remove containers and volumes"
echo " $0 shell [service] Open shell in container"
echo " $0 test-api Test Account Service API"
echo ""
echo "Single Service Commands (Development):"
echo " $0 start-svc <name> Start a specific service"
echo " $0 stop-svc <name> Stop a specific service"
echo " $0 restart-svc <name> Restart a specific service"
echo " $0 rebuild-svc <name> [--no-cache] Rebuild and restart a service"
echo ""
echo "Production Central Commands:"
echo " $0 prod build Build central services"
echo " $0 prod up Start central services"
echo " $0 prod down Stop central services"
echo " $0 prod logs Follow central logs"
echo " $0 prod restart Restart central services"
echo " $0 prod logs [svc] Follow central logs"
echo " $0 prod status Show central status"
echo " $0 prod health Check central health"
echo " $0 prod clean Remove central containers and volumes"
echo " $0 prod start-svc <name> Start a specific service"
echo " $0 prod stop-svc <name> Stop a specific service"
echo " $0 prod restart-svc <name> Restart a specific service"
echo " $0 prod rebuild-svc <name> [--no-cache] Rebuild and restart"
echo ""
echo "Production Party Commands (run on each party machine):"
echo " $0 party build Build party service"
echo " $0 party up Start party (connects to central)"
echo " $0 party down Stop party"
echo " $0 party restart Restart party"
echo " $0 party logs Follow party logs"
echo " $0 party status Show party status"
echo " $0 party health Check party health and connectivity"
echo " $0 party clean Remove party containers and volumes"
echo ""
echo "Environment Files:"
echo " .env Development configuration"
echo " .env.prod Production Central configuration"
echo " .env.party Production Party configuration"
echo ""
echo "Services (Development):"
echo " postgres, session-coordinator, message-router, account-service,"
echo " server-party-api, server-party-1, server-party-2, server-party-3"
echo ""
echo "Examples:"
echo " # Development (all on one machine)"
echo " $0 up"
echo " $0 rebuild-svc account-service --no-cache"
echo " $0 restart-svc session-coordinator"
echo ""
echo " # Production Central (on central server)"
echo " $0 prod up"
echo " $0 prod rebuild-svc account-service"
echo ""
echo " # Production Party (on each party machine)"
echo " PARTY_ID=server-party-1 $0 party up"