# 版本架构设计方案 ## 📋 版本规划 ### 标准版(Standard Edition) - **定位**:内网使用,所有资源存储在服务器本地 - **特点**: - 无需外网访问 - 资源完全本地化 - 部署简单,零配置 - 适合企业内部使用 ### Pro版(Professional Edition) - **定位**:支持内网穿透,资源存储在MinIO存储桶 - **特点**: - 支持内网穿透功能 - 资源存储在MinIO(运行在Docker内) - 存储桶也在服务器上 - 适合需要远程访问的场景 --- ## ✅ 方案符合项目宗旨分析 ### 1. 使用特定版本号 ✅ **完全符合** 使用 `minio/minio:RELEASE.2025-04-22T22-12-26Z` 而不是 `latest`: **优点**: - ✅ **稳定性优先**:避免因MinIO更新导致的不兼容问题 - ✅ **可重现性**:确保所有部署环境使用相同版本 - ✅ **易于回滚**:出现问题时可以快速定位版本 - ✅ **符合项目宗旨**:稳定性优先原则 **建议**: ```yaml # ✅ 好的做法:使用特定版本号 image: minio/minio:RELEASE.2025-04-22T22-12-26Z # ❌ 不好的做法:使用latest(可能因更新导致问题) image: minio/minio:latest ``` ### 2. Docker收费问题澄清 **重要说明**: - ✅ **Docker Engine(服务器版)**:**完全免费**,无任何限制 - ⚠️ **Docker Desktop(桌面版)**:个人/小团队免费,企业版收费 - ✅ **本项目使用场景**:服务器部署,使用Docker Engine,**无需担心收费问题** **结论**:使用Docker部署完全符合项目宗旨,无需担心收费。 ### 3. 国内镜像源配置 ✅ **必须配置** 虽然使用特定版本号,但仍需配置国内镜像源加速下载: #### 3.1 配置Docker镜像加速器 **在服务器上配置**(`/etc/docker/daemon.json`): ```json { "registry-mirrors": [ "https://docker.mirrors.ustc.edu.cn", "https://hub-mirror.c.163.com", "https://mirror.baidubce.com" ] } ``` **配置后重启Docker**: ```bash sudo systemctl daemon-reload sudo systemctl restart docker ``` #### 3.2 验证镜像源配置 ```bash docker info | grep -A 10 "Registry Mirrors" ``` #### 3.3 拉取MinIO镜像(使用国内镜像源) ```bash # 配置镜像加速器后,直接拉取即可使用国内源 docker pull minio/minio:RELEASE.2025-04-22T22-12-26Z ``` --- ## 🏗️ 架构设计建议 ### 标准版架构 ```yaml # docker-compose.standard.yml services: postgres: image: postgres:15-alpine # 数据库存储本地 app: image: flnxi-material:standard volumes: - ./uploads:/app/uploads # 所有资源存储在本地 # 不包含MinIO服务 ``` **特点**: - 所有文件存储在服务器本地 `./uploads` 目录 - 无需MinIO服务 - 资源完全内网访问 ### Pro版架构 ```yaml # docker-compose.prod.yml services: postgres: image: postgres:15-alpine minio: image: minio/minio:RELEASE.2025-04-22T22-12-26Z # 使用特定版本 volumes: - minio_data:/data # 存储桶数据存储在服务器上 # 支持内网穿透配置 app: image: flnxi-material:pro depends_on: - minio # 资源存储在MinIO存储桶 ``` **特点**: - 资源存储在MinIO存储桶(运行在Docker内) - 存储桶数据存储在服务器本地(`minio_data` volume) - 支持内网穿透功能 --- ## 📝 实施建议 ### 1. 创建两个版本的docker-compose文件 ``` 项目根目录/ ├── docker-compose.standard.yml # 标准版配置 ├── docker-compose.prod.yml # Pro版配置(已存在) └── docker-compose.yml # 默认配置(可链接到标准版或Pro版) ``` ### 2. 版本管理策略 #### 2.1 MinIO版本管理 ```yaml # 使用环境变量管理版本 MINIO_VERSION=${MINIO_VERSION:-RELEASE.2025-04-22T22-12-26Z} services: minio: image: minio/minio:${MINIO_VERSION} ``` #### 2.2 版本更新流程 1. **测试新版本**:在测试环境验证新版本兼容性 2. **更新版本号**:确认稳定后更新版本号 3. **文档记录**:在CHANGELOG中记录版本更新 4. **部署验证**:部署后验证功能正常 ### 3. 部署文档更新 在部署文档中明确说明: - ✅ 标准版和Pro版的区别 - ✅ MinIO版本号的使用原因 - ✅ Docker镜像加速器配置方法 - ✅ 版本更新流程 --- ## ✅ 总结 ### 方案评估 | 评估项 | 符合度 | 说明 | |--------|--------|------| | **稳定性优先** | ✅ 完全符合 | 使用特定版本号确保稳定性 | | **易于部署** | ✅ 完全符合 | 两个版本都支持一键部署 | | **国内镜像源** | ✅ 需配置 | 配置Docker镜像加速器即可 | | **性能开销** | ✅ 完全符合 | 资源都在服务器上,无额外开销 | | **Docker收费** | ✅ 无影响 | 服务器版Docker完全免费 | ### 最终结论 **✅ 该方案完全符合项目宗旨,无需修改** **建议补充**: 1. ✅ 配置Docker镜像加速器(国内镜像源) 2. ✅ 使用特定版本号(已符合要求) 3. ✅ 创建两个版本的docker-compose文件 4. ✅ 在文档中说明版本管理策略 --- **最后更新**:2025-11-15