✨ 新增内容: - 添加 NAS_DEPLOYMENT_GUIDE.md 详细部署指南 - 专门针对群晖、威联通等NAS环境的部署方案 - 包含一键部署脚本和故障排除指南 🔧 配置修复: - 修复 docker-compose.base-aliyun-beijing.yml 构建配置 - 从 Dockerfile.git 改回 Dockerfile 避免文件缺失问题 - 保持存储路径为 /vol1/1000/yunpan2 🎯 现在支持: - 本地Docker环境 - NAS Docker环境 - 阿里云环境 - 各种自定义环境
187 lines
4.2 KiB
Markdown
187 lines
4.2 KiB
Markdown
# 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公共空间版的便利!🎉
|