From 7909c314792abb89b5bbdff644976c09d618d566 Mon Sep 17 00:00:00 2001 From: chenpei Date: Sun, 24 Aug 2025 11:41:57 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=8F=A0=20=E6=B7=BB=E5=8A=A0NAS=E7=8E=AF?= =?UTF-8?q?=E5=A2=83=E9=83=A8=E7=BD=B2=E6=94=AF=E6=8C=81=E5=92=8C=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ✨ 新增内容: - 添加 NAS_DEPLOYMENT_GUIDE.md 详细部署指南 - 专门针对群晖、威联通等NAS环境的部署方案 - 包含一键部署脚本和故障排除指南 🔧 配置修复: - 修复 docker-compose.base-aliyun-beijing.yml 构建配置 - 从 Dockerfile.git 改回 Dockerfile 避免文件缺失问题 - 保持存储路径为 /vol1/1000/yunpan2 🎯 现在支持: - 本地Docker环境 - NAS Docker环境 - 阿里云环境 - 各种自定义环境 --- NAS_DEPLOYMENT_GUIDE.md | 186 +++++++++++++++++++++++++ docker-compose.base-aliyun-beijing.yml | 7 +- 2 files changed, 188 insertions(+), 5 deletions(-) create mode 100644 NAS_DEPLOYMENT_GUIDE.md diff --git a/NAS_DEPLOYMENT_GUIDE.md b/NAS_DEPLOYMENT_GUIDE.md new file mode 100644 index 0000000..a84c0c5 --- /dev/null +++ b/NAS_DEPLOYMENT_GUIDE.md @@ -0,0 +1,186 @@ +# NAS环境部署指南 + +> 专门针对NAS环境(如群晖、威联通等)的JmalCloud公共空间版部署方案 + +## 🎯 **NAS部署步骤** + +### 步骤1:在NAS上克隆仓库 + +**SSH连接到你的NAS,然后执行:** + +```bash +# 进入Docker数据目录(根据你的NAS调整路径) +cd /volume1/docker/ # 群晖示例路径 + +# 克隆改造版仓库 +git clone https://chenpei:jsjj654321@git.1080p.hk/chenpei/jmalcloud.git +cd jmalcloud + +# 确认文件存在 +ls -la Dockerfile* +``` + +### 步骤2:准备存储目录 + +```bash +# 确保存储目录存在 +mkdir -p /vol1/1000/yunpan2 +chown -R 1000:1000 /vol1/1000/yunpan2 +chmod -R 755 /vol1/1000/yunpan2 + +# 或使用你当前的用户ID +# chown -R $(id -u):$(id -g) /vol1/1000/yunpan2 +``` + +### 步骤3:使用NAS专用配置 + +**使用修改后的配置文件部署:** + +```bash +# 在克隆的仓库目录下执行 +docker-compose -f docker-compose.base-aliyun-beijing.yml up -d --build +``` + +## 🔧 **NAS环境优化配置** + +### 内存设置优化 +```yaml +JVM_OPTS: "-Xms512m -Xmx2g" # 根据NAS内存调整 +``` + +### 存储路径设置 +```yaml +volumes: + - /vol1/1000/yunpan2:/jmalcloud/files/ # 你的NAS存储路径 +``` + +## 📋 **常见NAS路径参考** + +| NAS品牌 | 典型Docker路径 | 存储路径示例 | +|---------|---------------|-------------| +| **群晖** | `/volume1/docker/` | `/volume1/shared/jmalcloud/` | +| **威联通** | `/share/Docker/` | `/share/Public/jmalcloud/` | +| **自建NAS** | `/mnt/docker/` | `/mnt/storage/jmalcloud/` | + +## ⚠️ **NAS部署注意事项** + +### 1. 权限问题 +```bash +# 检查Docker用户权限 +docker run --rm -v /vol1/1000/yunpan2:/test alpine ls -la /test + +# 如果权限不对,调整: +sudo chown -R 1000:1000 /vol1/1000/yunpan2 +``` + +### 2. 防火墙设置 +确保以下端口开放: +- `7070` - 前端访问 +- `7072` - 后端API +- `7071` - OnlyOffice + +### 3. 内存限制 +```bash +# 检查可用内存 +free -h + +# 根据内存调整JVM参数 +# 4GB内存:-Xms512m -Xmx1g +# 8GB内存:-Xms512m -Xmx2g +# 16GB内存:-Xms1g -Xmx4g +``` + +## 🚀 **一键NAS部署脚本** + +创建 `deploy-nas.sh` 脚本: + +```bash +#!/bin/bash +# NAS环境一键部署脚本 + +set -e + +echo "🚀 JmalCloud NAS部署开始..." + +# 检查Git +if ! command -v git &> /dev/null; then + echo "❌ 请先安装Git" + exit 1 +fi + +# 检查Docker +if ! command -v docker &> /dev/null; then + echo "❌ 请先安装Docker" + exit 1 +fi + +# 克隆仓库(如果不存在) +if [ ! -d "jmalcloud" ]; then + echo "📥 克隆JmalCloud改造版仓库..." + git clone https://chenpei:jsjj654321@git.1080p.hk/chenpei/jmalcloud.git +fi + +cd jmalcloud + +# 创建数据目录 +echo "📁 创建数据目录..." +mkdir -p /vol1/1000/yunpan2 +mkdir -p docker/jmalcloud/mongodb/data/db +mkdir -p docker/jmalcloud/mongodb/backup + +# 设置权限 +echo "🔐 设置目录权限..." +chown -R 1000:1000 /vol1/1000/yunpan2 || echo "权限设置可能需要sudo" +chown -R 1000:1000 docker/jmalcloud/ || echo "权限设置可能需要sudo" + +# 停止现有容器 +echo "🛑 停止现有容器..." +docker-compose -f docker-compose.base-aliyun-beijing.yml down || echo "无现有容器" + +# 启动服务 +echo "🚀 启动JmalCloud服务..." +docker-compose -f docker-compose.base-aliyun-beijing.yml up -d --build + +echo "✅ 部署完成!" +echo "🌐 访问地址:" +echo " 前端: http://你的NAS_IP:7070" +echo " 后端: http://你的NAS_IP:7072" +echo " OnlyOffice: http://你的NAS_IP:7071" +``` + +## 🔧 **故障排除** + +### 构建失败 +```bash +# 清理Docker构建缓存 +docker system prune -a + +# 重新拉取基础镜像 +docker pull ghcr.io/jamebal/jdk21_ffmpeg:latest +``` + +### 网络超时 +```bash +# 配置Docker镜像源(中国大陆用户) +sudo mkdir -p /etc/docker +sudo tee /etc/docker/daemon.json <<-'EOF' +{ + "registry-mirrors": [ + "https://mirror.ccs.tencentyun.com", + "https://docker.mirrors.ustc.edu.cn" + ] +} +EOF +sudo systemctl restart docker +``` + +### 端口冲突 +如果端口被占用,修改 `docker-compose.base-aliyun-beijing.yml` 中的端口映射: +```yaml +ports: + - "8070:80" # 修改前端端口 + - "8072:8088" # 修改后端端口 + - "8071:8089" # 修改OnlyOffice端口 +``` + +部署成功后即可享受JmalCloud公共空间版的便利!🎉 diff --git a/docker-compose.base-aliyun-beijing.yml b/docker-compose.base-aliyun-beijing.yml index b571661..9f95031 100644 --- a/docker-compose.base-aliyun-beijing.yml +++ b/docker-compose.base-aliyun-beijing.yml @@ -19,12 +19,9 @@ services: container_name: jmalcloud_server build: context: . - dockerfile: Dockerfile.git + dockerfile: Dockerfile args: - GIT_REPO: https://git.1080p.hk/chenpei/jmalcloud.git - GIT_USERNAME: chenpei - GIT_PASSWORD: jsjj654321 - TARGETPLATFORM: linux/amd64 + VERSION: 2.15.0 image: chenpei/jmalcloud:aliyun-beijing environment: MONGODB_URI: "mongodb://mongo:27017/jmalcloud"