imetting_frontend/deploy-prod.sh

69 lines
1.8 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#!/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 " ✅ 进程监控和健康检查"