Files

48 lines
1.3 KiB
Bash

#!/bin/bash
# ============================================
# 更新单个服务脚本
# 用法: ./update-service.sh <服务名>
# 示例: ./update-service.sh resume-web
# ============================================
SERVICE_NAME=$1
if [ -z "$SERVICE_NAME" ]; then
echo "错误:请指定服务名"
echo "用法: $0 <服务名>"
echo "可用服务: resume-web, miniapp-web, resume-api, miniapp-api"
exit 1
fi
if [ ! -d "services/$SERVICE_NAME" ]; then
echo "错误:服务 '$SERVICE_NAME' 不存在"
exit 1
fi
echo "=========================================="
echo " 更新服务: $SERVICE_NAME"
echo "=========================================="
# 如果有 Dockerfile,重新构建
if [ -f "services/$SERVICE_NAME/Dockerfile" ]; then
echo "检测到 Dockerfile,正在构建镜像..."
docker-compose build "$SERVICE_NAME"
fi
# 重启指定服务
echo "正在重启服务..."
docker-compose up -d --no-deps --force-recreate "$SERVICE_NAME"
# 检查健康状态
echo ""
echo "等待服务启动..."
sleep 3
if docker-compose ps | grep "$SERVICE_NAME" | grep -q "Up"; then
echo "服务 $SERVICE_NAME 更新成功"
else
echo "警告:服务 $SERVICE_NAME 状态异常,请检查日志"
docker-compose logs --tail=50 "$SERVICE_NAME"
fi