Files
wecom-ai-assistant/deploy/scripts/update.sh
2026-02-05 16:36:32 +08:00

65 lines
1.4 KiB
Bash

#!/bin/bash
# 生产环境更新脚本
# 用途:拉取最新镜像并重启服务
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
cd "$PROJECT_ROOT"
# 检查参数
IMAGE_TAG=${1:-latest}
if [ -z "$IMAGE_TAG" ]; then
echo "用法: $0 [IMAGE_TAG]"
echo "示例: $0 latest"
echo "示例: $0 v1.0.0"
exit 1
fi
echo "=== 更新生产服务 ==="
echo "镜像标签: $IMAGE_TAG"
echo ""
# 检查 .env.prod 文件
if [ ! -f ".env.prod" ]; then
echo "错误: 未找到 .env.prod 文件"
exit 1
fi
# 设置镜像标签
export IMAGE_TAG
# 登录到容器镜像仓库(如果需要)
# docker login ghcr.io -u $GITHUB_USERNAME -p $GITHUB_TOKEN
# 拉取最新镜像
echo "[1/3] 拉取最新镜像..."
docker-compose -f docker-compose.prod.yml --env-file .env.prod pull
# 停止旧服务
echo ""
echo "[2/3] 停止旧服务..."
docker-compose -f docker-compose.prod.yml --env-file .env.prod down
# 启动新服务
echo ""
echo "[3/3] 启动新服务..."
docker-compose -f docker-compose.prod.yml --env-file .env.prod up -d
echo ""
echo "等待服务启动..."
sleep 5
# 检查服务状态
echo ""
echo "服务状态:"
docker-compose -f docker-compose.prod.yml ps
echo ""
echo "=== 更新完成 ==="
echo ""
echo "查看日志: docker-compose -f docker-compose.prod.yml logs -f"
echo "检查健康: curl http://localhost/api/health"