diff --git a/SIMPLE_DEPLOYMENT.md b/SIMPLE_DEPLOYMENT.md new file mode 100644 index 0000000..8230053 --- /dev/null +++ b/SIMPLE_DEPLOYMENT.md @@ -0,0 +1,118 @@ +# 🚀 超简单部署指南 + +> **就像原版一样简单!一次构建,永久使用** + +## ✨ 为什么现在看起来复杂了? + +**原来(原版):** +```yaml +image: registry.cn-beijing.aliyuncs.com/jmalcloud/jmalcloud:latest # 现成的镜像 +``` +- ✅ 直接用,很简单 + +**我们的改造版:** +- ❌ 需要从源码构建(因为是我们自己改造的版本) +- ❌ 看起来复杂了 + +## 🎯 解决方案:恢复简单部署 + +### **方案1:一次构建,永久简单使用** ⭐ + +**第1步:在你的NAS上构建一次镜像(只需要做一次)** + +```bash +# SSH到你的NAS +ssh admin@你的NAS_IP + +# 下载并运行一次性构建脚本 +curl -sSL https://git.1080p.hk/chenpei/jmalcloud/raw/branch/main/build-image-once.sh | bash +``` + +**第2步:之后就像原来一样简单!** + +```bash +# 随便在任何目录下载配置文件 +wget https://git.1080p.hk/chenpei/jmalcloud/raw/branch/main/docker-compose.base-aliyun-beijing.yml + +# 直接启动,就像原版一样简单! +docker-compose -f docker-compose.base-aliyun-beijing.yml up -d +``` + +就这么简单!✨ + +--- + +## 🔄 对比:原来 vs 现在 + +### **原版JmalCloud(用户隔离):** +```bash +# 1. 下载配置文件 +wget xxx/docker-compose.yml + +# 2. 直接启动 +docker-compose up -d +``` + +### **我们的改造版(公共空间):** +```bash +# 1. 一次性构建(只需要做一次) +curl -sSL https://xxx/build-image-once.sh | bash + +# 2. 之后和原版一样简单 +wget xxx/docker-compose.base-aliyun-beijing.yml +docker-compose -f docker-compose.base-aliyun-beijing.yml up -d +``` + +**只是多了第一步的一次性构建,之后就完全一样了!** + +--- + +## 📋 完整的简单流程 + +### **在你的NAS上执行:** + +```bash +# ========== 只需要执行一次 ========== +# 构建改造版镜像 +curl -sSL https://git.1080p.hk/chenpei/jmalcloud/raw/branch/main/build-image-once.sh | bash + +# ========== 每次部署都很简单 ========== +# 下载配置文件 +wget https://git.1080p.hk/chenpei/jmalcloud/raw/branch/main/docker-compose.base-aliyun-beijing.yml + +# 确保存储目录存在 +mkdir -p /vol1/1000/yunpan2 + +# 启动服务 +docker-compose -f docker-compose.base-aliyun-beijing.yml up -d +``` + +### **访问地址:** +- 🌐 前端:http://你的NAS_IP:7070 +- 🔌 后端:http://你的NAS_IP:7072 + +--- + +## ❓ 常见问题 + +### Q: 为什么不能直接用原版的方式? +A: 因为我们做了代码级别的改造(公共空间),必须用我们改造的版本。但通过一次性构建,使用体验和原版一样简单。 + +### Q: 每次更新都要重新构建吗? +A: 是的,但这很少发生。而且构建脚本会自动处理,你只需要重新运行一次构建脚本即可。 + +### Q: 构建失败怎么办? +A: 检查网络连接,或者联系我们获得预构建的镜像。 + +--- + +## 🎉 总结 + +通过一次性构建脚本,我们的改造版现在可以: + +- ✅ **第一次**:稍微复杂一点(需要构建) +- ✅ **之后每次**:和原版一样简单! +- ✅ **功能**:拥有公共空间的所有改造功能 +- ✅ **性能**:和原版相同的性能表现 + +**享受简单部署的同时,获得公共空间的强大功能!** 🚀 diff --git a/build-image-once.sh b/build-image-once.sh new file mode 100755 index 0000000..b27d9a4 --- /dev/null +++ b/build-image-once.sh @@ -0,0 +1,64 @@ +#!/bin/bash +# JmalCloud改造版一次性构建脚本 +# 构建一次镜像,之后就可以像原版一样简单使用 + +set -e + +echo "🚀 JmalCloud改造版一次性构建开始..." + +# 检查Docker +if ! command -v docker &> /dev/null; then + echo "❌ 错误:Docker未安装" + exit 1 +fi + +# 检查Git +if ! command -v git &> /dev/null; then + echo "❌ 错误:Git未安装" + exit 1 +fi + +echo "📥 克隆改造版源码..." +# 如果目录存在就更新,否则克隆 +if [ -d "jmalcloud-build" ]; then + cd jmalcloud-build + git pull +else + git clone https://chenpei:jsjj654321@git.1080p.hk/chenpei/jmalcloud.git jmalcloud-build + cd jmalcloud-build +fi + +echo "🔨 构建改造版镜像..." +# 构建镜像并打上标签 +docker build -f Dockerfile --build-arg VERSION=2.15.0 -t chenpei/jmalcloud:aliyun-beijing . + +# 也创建一个通用标签 +docker tag chenpei/jmalcloud:aliyun-beijing chenpei/jmalcloud:latest + +echo "✅ 构建完成!" +echo "" +echo "🎯 现在你可以像原来一样简单使用:" +echo "" +echo "1️⃣ 直接复制docker-compose.base-aliyun-beijing.yml到你的NAS" +echo "2️⃣ 运行: docker-compose -f docker-compose.base-aliyun-beijing.yml up -d" +echo "" +echo "📋 可用的镜像标签:" +echo " - chenpei/jmalcloud:aliyun-beijing" +echo " - chenpei/jmalcloud:latest" +echo "" +echo "🌐 服务将在以下端口启动:" +echo " - 前端: http://你的IP:7070" +echo " - 后端: http://你的IP:7072" +echo " - OnlyOffice: http://你的IP:7071" +echo "" +echo "💡 提示:此脚本只需要运行一次,镜像构建后就可以重复使用!" + +# 清理构建目录(可选) +cd .. +read -p "🗑️ 是否删除构建目录以节省空间?(y/N): " cleanup +if [[ $cleanup =~ ^[Yy]$ ]]; then + rm -rf jmalcloud-build + echo "✅ 构建目录已清理" +fi + +echo "🎉 一次性构建完成!现在可以享受简单部署了!" diff --git a/docker-compose.base-aliyun-beijing.yml b/docker-compose.base-aliyun-beijing.yml index 9f95031..eef0ca4 100644 --- a/docker-compose.base-aliyun-beijing.yml +++ b/docker-compose.base-aliyun-beijing.yml @@ -17,11 +17,6 @@ services: jmalcloud: container_name: jmalcloud_server - build: - context: . - dockerfile: Dockerfile - args: - VERSION: 2.15.0 image: chenpei/jmalcloud:aliyun-beijing environment: MONGODB_URI: "mongodb://mongo:27017/jmalcloud"