Files
template-10556/deploy.sh
2025-07-22 13:27:07 +08:00

88 lines
2.2 KiB
Bash
Executable File

#!/bin/bash
# AI Chat Docker 部署脚本
set -e
echo "🚀 开始部署 AI Chat 应用..."
# 检查Docker是否安装
if ! command -v docker &> /dev/null; then
echo "❌ Docker 未安装,请先安装 Docker"
exit 1
fi
# 检查Docker Compose是否安装
if ! command -v docker-compose &> /dev/null; then
echo "❌ Docker Compose 未安装,请先安装 Docker Compose"
exit 1
fi
# 检查dist目录是否存在
if [ ! -d "dist" ]; then
echo "❌ dist 目录不存在,请先构建项目"
echo "运行: npm run build"
exit 1
fi
# 创建日志目录
mkdir -p logs
# 选择部署模式
echo "请选择部署模式:"
echo "1) 简单模式 (端口 3000)"
echo "2) 完整模式 (端口 3000)"
echo "3) 带反向代理 (端口 80)"
read -p "请输入选择 (1-3): " choice
case $choice in
1)
echo "📦 使用简单模式部署..."
docker-compose -f docker-compose.simple.yml down 2>/dev/null || true
docker-compose -f docker-compose.simple.yml up -d --build
echo "✅ 部署完成!访问地址: http://localhost:3000"
;;
2)
echo "📦 使用完整模式部署..."
docker-compose down 2>/dev/null || true
docker-compose up -d --build
echo "✅ 部署完成!访问地址: http://localhost:3000"
;;
3)
echo "📦 使用反向代理模式部署..."
docker-compose --profile proxy down 2>/dev/null || true
docker-compose --profile proxy up -d --build
echo "✅ 部署完成!访问地址: http://localhost"
;;
*)
echo "❌ 无效选择"
exit 1
;;
esac
# 等待服务启动
echo "⏳ 等待服务启动..."
sleep 5
# 检查服务状态
if [ "$choice" = "1" ]; then
docker-compose -f docker-compose.simple.yml ps
else
docker-compose ps
fi
echo ""
echo "🎉 部署完成!"
echo ""
echo "📋 常用命令:"
echo " 查看日志: docker-compose logs -f"
echo " 停止服务: docker-compose down"
echo " 重启服务: docker-compose restart"
echo ""
echo "🔍 健康检查:"
if curl -s http://localhost:3000 > /dev/null 2>&1 || curl -s http://localhost > /dev/null 2>&1; then
echo "✅ 服务运行正常"
else
echo "⚠️ 服务可能还在启动中,请稍等片刻"
fi