Files
111 998211c483 feat: 初始化考培练系统项目
- 从服务器拉取完整代码
- 按框架规范整理项目结构
- 配置 Drone CI 测试环境部署
- 包含后端(FastAPI)、前端(Vue3)、管理端

技术栈: Vue3 + TypeScript + FastAPI + MySQL
2026-01-24 19:33:28 +08:00

114 lines
3.1 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# 考陪练系统部署脚本
# 用于部署前端、后端服务并申请SSL证书
set -e
echo "=== 考陪练系统部署开始 ==="
# 检查Docker是否运行
if ! docker info > /dev/null 2>&1; then
echo "❌ Docker未运行请先启动Docker服务"
exit 1
fi
# 检查Docker Compose是否安装
if ! command -v docker-compose > /dev/null 2>&1; then
echo "❌ Docker Compose未安装"
exit 1
fi
echo "✅ Docker环境检查通过"
# 创建必要的目录
echo "📁 创建必要的目录..."
mkdir -p /root/aiedu/kaopeilian-backend/logs
mkdir -p /root/aiedu/kaopeilian-backend/uploads
mkdir -p /root/aiedu/nginx/conf.d
# 停止现有容器
echo "🛑 停止现有容器..."
docker-compose down || true
# 构建镜像
echo "🔨 构建Docker镜像..."
docker-compose build --no-cache
# 启动服务除了nginx因为还没有SSL证书
echo "🚀 启动后端和前端服务..."
docker-compose up -d kaopeilian-redis kaopeilian-backend kaopeilian-frontend
# 等待服务启动
echo "⏳ 等待服务启动..."
sleep 30
# 检查服务健康状态
echo "🔍 检查服务健康状态..."
if curl -f http://localhost:8000/health > /dev/null 2>&1; then
echo "✅ 后端服务健康检查通过"
else
echo "❌ 后端服务健康检查失败"
docker-compose logs kaopeilian-backend
exit 1
fi
if curl -f http://localhost:3001/ > /dev/null 2>&1; then
echo "✅ 前端服务健康检查通过"
else
echo "❌ 前端服务健康检查失败"
docker-compose logs kaopeilian-frontend
exit 1
fi
echo "=== 基础服务部署完成 ==="
echo "前端访问地址: http://localhost:3001"
echo "后端API地址: http://localhost:8000"
echo ""
echo "下一步将申请SSL证书..."
# 申请SSL证书
echo "🔐 申请SSL证书..."
if command -v certbot > /dev/null 2>&1; then
# 停止nginx容器如果运行
docker-compose stop kaopeilian-nginx || true
# 使用standalone模式申请证书
certbot certonly \
--standalone \
--non-interactive \
--agree-tos \
--email admin@ireborn.com.cn \
--domains aiedu.ireborn.com.cn \
--pre-hook "docker-compose stop kaopeilian-nginx" \
--post-hook "docker-compose up -d kaopeilian-nginx"
if [ $? -eq 0 ]; then
echo "✅ SSL证书申请成功"
# 启动nginx服务
echo "🚀 启动Nginx反向代理服务..."
docker-compose up -d kaopeilian-nginx
echo "=== 部署完成 ==="
echo "HTTPS访问地址: https://aiedu.ireborn.com.cn"
echo "前端访问地址: https://aiedu.ireborn.com.cn"
echo "后端API地址: https://aiedu.ireborn.com.cn/api"
else
echo "❌ SSL证书申请失败请检查域名配置"
echo "HTTP访问地址: http://aiedu.ireborn.com.cn"
fi
else
echo "⚠️ certbot未安装跳过SSL证书申请"
echo "请手动安装certbot并申请SSL证书"
fi
echo ""
echo "=== 部署完成 ==="
echo "查看服务状态: docker-compose ps"
echo "查看日志: docker-compose logs [服务名]"
echo "停止服务: docker-compose down"