#!/bin/bash echo "🚀 开始部署iMeeting前端服务(PM2模式)..." # 检查node_modules if [ ! -d "node_modules" ]; then echo "📦 安装依赖..." yarn install fi # 构建前端 echo "🔨 构建前端应用..." yarn build # 检查构建是否成功 if [ $? -ne 0 ]; then echo "❌ 构建失败!请检查代码错误" exit 1 fi if [ ! -d "dist" ]; then echo "❌ 构建失败!dist目录未生成" exit 1 fi echo "✅ 前端构建完成,开始Docker部署..." # 创建日志目录 mkdir -p logs # 停止并删除现有容器 echo "📦 停止现有容器..." docker-compose -f docker-compose.prod.yml down # 构建新镜像 echo "🔨 构建Docker镜像..." docker-compose -f docker-compose.prod.yml build --no-cache # 启动服务 echo "▶️ 启动PM2服务..." docker-compose -f docker-compose.prod.yml up -d # 检查服务状态 echo "🔍 检查服务状态..." sleep 15 docker-compose -f docker-compose.prod.yml ps # 检查PM2进程状态 echo "🔄 检查PM2进程状态..." docker exec imeeting-frontend pm2 list # 检查健康状态 echo "🏥 检查健康状态..." curl -f http://localhost:3001/health && echo "✅ 前端服务健康检查通过" || echo "❌ 前端服务健康检查失败" echo "" echo "🎉 部署完成!" echo "📱 前端服务访问地址: http://localhost:3001" echo "📊 查看日志: docker-compose -f docker-compose.prod.yml logs -f" echo "📈 查看PM2状态: docker exec imeeting-frontend pm2 monit" echo "📋 查看PM2进程: docker exec imeeting-frontend pm2 list" echo "🛑 停止服务: docker-compose -f docker-compose.prod.yml down" echo "" echo "💡 提示:PM2模式特性:" echo " ✅ 集群模式(2个实例)" echo " ✅ 自动重启和故障恢复" echo " ✅ 内存限制保护(1GB)" echo " ✅ 详细日志管理" echo " ✅ 进程监控和健康检查"