flnxi-Wu/版本架构设计方案.md
WuYongJie f646b71813
Some checks failed
CI Check / check (push) Has been cancelled
chore: 初始化本地仓库并同步最近改动
2025-11-18 17:50:16 +08:00

5.1 KiB
Raw Blame History

版本架构设计方案

📋 版本规划

标准版(Standard Edition)

  • 定位:内网使用,所有资源存储在服务器本地
  • 特点:
    • 无需外网访问
    • 资源完全本地化
    • 部署简单,零配置
    • 适合企业内部使用

Pro版(Professional Edition)

  • 定位:支持内网穿透,资源存储在MinIO存储桶
  • 特点:
    • 支持内网穿透功能
    • 资源存储在MinIO(运行在Docker内)
    • 存储桶也在服务器上
    • 适合需要远程访问的场景

✅ 方案符合项目宗旨分析

1. 使用特定版本号 ✅ 完全符合

使用 minio/minio:RELEASE.2025-04-22T22-12-26Z 而不是 latest:

优点:

  • ✅ 稳定性优先:避免因MinIO更新导致的不兼容问题
  • ✅ 可重现性:确保所有部署环境使用相同版本
  • ✅ 易于回滚:出现问题时可以快速定位版本
  • ✅ 符合项目宗旨:稳定性优先原则

建议:

# ✅ 好的做法:使用特定版本号
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):

{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
  ]
}

配置后重启Docker:

sudo systemctl daemon-reload
sudo systemctl restart docker

3.2 验证镜像源配置

docker info | grep -A 10 "Registry Mirrors"

3.3 拉取MinIO镜像(使用国内镜像源)

# 配置镜像加速器后,直接拉取即可使用国内源
docker pull minio/minio:RELEASE.2025-04-22T22-12-26Z

🏗️ 架构设计建议

标准版架构

# docker-compose.standard.yml
services:
  postgres:
    image: postgres:15-alpine
    # 数据库存储本地
    
  app:
    image: youyidian-3d-material:standard
    volumes:
      - ./uploads:/app/uploads  # 所有资源存储在本地
    # 不包含MinIO服务

特点:

  • 所有文件存储在服务器本地 ./uploads 目录
  • 无需MinIO服务
  • 资源完全内网访问

Pro版架构

# 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: youyidian-3d-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版本管理

# 使用环境变量管理版本
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