#!/bin/bash # 宝塔面板一键部署脚本 # 用途:在宝塔面板服务器上快速部署项目 set -e PROJECT_DIR="/www/wwwroot/wecom-ai-assistant" REGISTRY_URL="git.quanyu360.cn" REGISTRY_USER="admin" REGISTRY_PASS="ye972030" echo "=== 宝塔面板一键部署 ===" echo "" # 检查 Docker 是否安装 if ! command -v docker &> /dev/null; then echo "错误: Docker 未安装" echo "请在宝塔面板中安装 Docker" exit 1 fi # 检查 docker-compose 是否安装 if ! command -v docker-compose &> /dev/null && ! docker compose version &> /dev/null; then echo "警告: docker-compose 未安装,尝试安装..." # 尝试安装 docker-compose pip3 install docker-compose 2>/dev/null || { echo "请手动安装 docker-compose" exit 1 } fi # 创建项目目录 echo "1. 创建项目目录..." mkdir -p "$PROJECT_DIR" cd "$PROJECT_DIR" echo "✓ 目录已创建: $PROJECT_DIR" echo "" # 登录 Docker Registry echo "2. 登录 Docker Registry..." echo "$REGISTRY_PASS" | docker login "$REGISTRY_URL" -u "$REGISTRY_USER" --password-stdin echo "✓ 登录成功" echo "" # 检查项目文件是否存在 if [ ! -f "docker-compose.prod.yml" ]; then echo "3. 项目文件不存在,请:" echo " - 使用 Git 克隆项目,或" echo " - 使用宝塔文件管理器上传项目文件" echo "" echo "Git 克隆命令:" echo " cd $PROJECT_DIR" echo " git clone https://admin:ye972030@git.quanyu360.cn/admin/wecom-ai-assistant.git ." echo "" exit 1 fi # 检查环境变量文件 if [ ! -f ".env.prod" ]; then echo "3. 创建环境变量文件..." if [ -f ".env.prod.example" ]; then cp .env.prod.example .env.prod echo "✓ 已创建 .env.prod(请编辑填写实际配置)" else echo "⚠ .env.prod.example 不存在,请手动创建 .env.prod" fi echo "" fi # 拉取镜像 echo "4. 拉取 Docker 镜像..." if [ -f "deploy/scripts/pull-images.sh" ]; then chmod +x deploy/scripts/pull-images.sh ./deploy/scripts/pull-images.sh else echo " 拉取 Backend 镜像..." docker pull ${REGISTRY_URL}/wecom-ai/wecom-ai-backend:latest || echo " ⚠ Backend 镜像拉取失败" echo " 拉取 Admin 镜像..." docker pull ${REGISTRY_URL}/wecom-ai/wecom-ai-admin:latest || echo " ⚠ Admin 镜像拉取失败" fi echo "" # 启动服务 echo "5. 启动服务..." if command -v docker-compose &> /dev/null; then DOCKER_COMPOSE_CMD="docker-compose" else DOCKER_COMPOSE_CMD="docker compose" fi $DOCKER_COMPOSE_CMD -f docker-compose.prod.yml --env-file .env.prod up -d echo "" # 检查服务状态 echo "6. 服务状态:" $DOCKER_COMPOSE_CMD -f docker-compose.prod.yml ps echo "" echo "=== 部署完成 ===" echo "" echo "项目目录: $PROJECT_DIR" echo "查看日志: cd $PROJECT_DIR && $DOCKER_COMPOSE_CMD -f docker-compose.prod.yml logs -f" echo "停止服务: cd $PROJECT_DIR && $DOCKER_COMPOSE_CMD -f docker-compose.prod.yml down" echo ""