#!/bin/bash # JmalCloud Git构建和部署脚本 set -e echo "🚀 JmalCloud Git构建和部署脚本" echo "==================================" # 检查Docker是否已安装 if ! command -v docker &> /dev/null; then echo "❌ 错误:Docker未安装,请先安装Docker" exit 1 fi if ! command -v docker-compose &> /dev/null; then echo "❌ 错误:Docker Compose未安装,请先安装Docker Compose" exit 1 fi # 创建必要的目录 echo "📁 创建数据目录..." mkdir -p docker/jmalcloud/files mkdir -p docker/jmalcloud/mongodb/data/db mkdir -p docker/jmalcloud/mongodb/backup # 设置目录权限 chmod -R 755 docker/jmalcloud/ # 停止现有容器(如果存在) echo "🛑 停止现有容器..." docker-compose -f docker-compose.git.yml down || echo "未发现正在运行的容器" # 清理旧镜像(可选) read -p "🗑️ 是否清理旧的构建镜像?(y/N): " cleanup if [[ $cleanup =~ ^[Yy]$ ]]; then echo "清理旧镜像..." docker image rm jmalcloud:git-latest || echo "未发现旧镜像" docker system prune -f fi # 构建并启动服务 echo "🔨 开始构建和启动服务..." docker-compose -f docker-compose.git.yml up -d --build # 等待服务启动 echo "⏳ 等待服务启动..." sleep 10 # 检查服务状态 echo "🔍 检查服务状态..." docker-compose -f docker-compose.git.yml ps # 显示日志 echo "📋 显示服务日志(按 Ctrl+C 退出)..." echo "==================================" echo "✅ 服务已启动!" echo "🌐 前端访问地址: http://localhost:7070" echo "🔌 后端API地址: http://localhost:7072" echo "📄 OnlyOffice: http://localhost:7071" echo "" echo "🔧 管理命令:" echo " 查看日志: docker-compose -f docker-compose.git.yml logs -f" echo " 停止服务: docker-compose -f docker-compose.git.yml down" echo " 重启服务: docker-compose -f docker-compose.git.yml restart" echo "" # 询问是否查看日志 read -p "🔍 是否查看实时日志?(y/N): " viewlogs if [[ $viewlogs =~ ^[Yy]$ ]]; then docker-compose -f docker-compose.git.yml logs -f fi echo "🎉 部署完成!"