8.6 KiB
8.6 KiB
客户一键部署指南(Registry 版本)
🎯 目标
让其他公司能够一条命令完成部署,无需源码,直接从私有镜像仓库拉取镜像。
✅ 当前方案已实现
搭建完 Docker Registry 后,完全符合"一键部署"的目标:
- ✅ 无需源码:客户不需要源代码,只需要配置文件
- ✅ 一条命令:
docker compose up -d即可完成部署 - ✅ 私有镜像:从 Registry 拉取,代码不泄露
- ✅ 自动化:自动配置数据库、MinIO、网络等
📦 客户部署流程
方案 A:最简单(推荐 ⭐⭐⭐)
客户只需要 3 步:
步骤 1:下载部署包
提供压缩包,包含:
docker-compose.prod.yml- 生产配置.env.example- 环境变量模板README.md- 部署说明
步骤 2:配置环境变量
# 复制模板
cp .env.example .env
# 编辑配置(只需修改必要的)
nano .env
最小配置(其他使用默认值):
# Registry 地址(必须)
DOCKER_REGISTRY=45.249.208.118:5000
# 服务器 IP(必须)
SERVER_IP=客户服务器IP
# 数据库密码(建议修改)
POSTGRES_PASSWORD=客户设置的密码
MINIO_ROOT_PASSWORD=客户设置的密码
步骤 3:一键启动
docker compose -f docker-compose.prod.yml up -d
完成! 等待 1-2 分钟,访问 http://客户服务器IP:4320
方案 B:全自动安装(包含 Docker 安装)
如果客户服务器没有 Docker,提供自动安装脚本:
步骤 1:下载部署包
步骤 2:运行自动安装脚本
# Linux
bash install-auto.sh
# Windows
install-auto-windows.bat
脚本会自动:
- ✅ 检测并安装 Docker(如未安装)
- ✅ 检测并安装 Docker Compose(如未安装)
- ✅ 配置 Docker 允许不安全的 Registry
- ✅ 创建配置文件
- ✅ 拉取镜像
- ✅ 启动服务
- ✅ 初始化数据库
🔧 配置文件说明
docker-compose.prod.yml(已配置好)
services:
app:
# 从 Registry 拉取镜像(无需源码)
image: ${DOCKER_REGISTRY:-45.249.208.118:5000}/flnxi-material:pro-${IMAGE_TAG:-latest}
# ... 其他配置已自动设置
.env 文件(客户只需修改必要项)
# ============================================
# Registry 配置(必须)
# ============================================
DOCKER_REGISTRY=45.249.208.118:5000
IMAGE_TAG=latest
# ============================================
# 服务器配置(必须)
# ============================================
SERVER_IP=客户服务器IP地址
APP_PORT=4320
# ============================================
# 数据库配置(建议修改密码)
# ============================================
POSTGRES_USER=postgres
POSTGRES_PASSWORD=客户设置的密码
POSTGRES_DB=flnxi
# ============================================
# MinIO 配置(建议修改密码)
# ============================================
MINIO_ROOT_USER=minioadmin
MINIO_ROOT_PASSWORD=客户设置的密码
S3_BUCKET=youyidian3d
# ============================================
# 认证配置(建议修改)
# ============================================
NEXTAUTH_SECRET=客户生成的随机密钥
NEXTAUTH_URL=http://${SERVER_IP}:${APP_PORT}
🚀 部署包内容
最小部署包(推荐)
deploy-package/
├── docker-compose.prod.yml # 生产配置(已配置好)
├── .env.example # 环境变量模板
├── README.md # 部署说明
└── install.sh # 快速安装脚本(可选)
完整部署包(包含自动安装)
deploy-package/
├── docker-compose.prod.yml # 生产配置
├── .env.example # 环境变量模板
├── README.md # 部署说明
├── install-auto.sh # 全自动安装(Linux)
├── install-auto-windows.bat # 全自动安装(Windows)
└── install.sh # 快速安装(已有 Docker)
📋 客户部署检查清单
部署前
- 服务器已安装 Docker(或使用自动安装脚本)
- 服务器已安装 Docker Compose(或使用自动安装脚本)
- 服务器有至少 2GB 内存
- 服务器有至少 20GB 磁盘空间
- 服务器可以访问 Registry(45.249.208.118:5000)
部署中
- 已配置
.env文件 - 已配置
DOCKER_REGISTRY环境变量 - 已配置
SERVER_IP环境变量 - 已修改数据库密码(生产环境)
部署后
- 服务正常启动(
docker compose ps) - 可以访问应用(
http://服务器IP:4320) - 数据库连接正常
- MinIO 存储正常
- 可以上传素材
🔐 Registry 访问配置
如果 Registry 需要认证
方式 1:在 .env 中配置(推荐)
# 添加到 .env 文件
REGISTRY_USER=admin
REGISTRY_PASSWORD=客户获取的密码
方式 2:在服务器上登录
# 客户在服务器上执行
docker login 45.249.208.118:5000 -u admin -p 密码
如果 Registry 不需要认证(HTTP)
配置 Docker 允许不安全的 Registry
# 在服务器上配置
cat > /etc/docker/daemon.json <<EOF
{
"insecure-registries": ["45.249.208.118:5000"]
}
EOF
# 重启 Docker
systemctl restart docker
📝 客户部署文档模板
创建 docs/guides/CUSTOMER_DEPLOYMENT_README.md 供客户使用:
# FLNXI素材库 - 快速部署指南
## 🚀 一键部署(3 步完成)
### 步骤 1:配置环境变量
```bash
cp .env.example .env
nano .env # 修改必要的配置
必须修改:
DOCKER_REGISTRY- Registry 地址SERVER_IP- 您的服务器 IPPOSTGRES_PASSWORD- 数据库密码(建议修改)MINIO_ROOT_PASSWORD- 存储密码(建议修改)
步骤 2:配置 Docker(如果 Registry 使用 HTTP)
# 允许不安全的 Registry
cat > /etc/docker/daemon.json <<EOF
{
"insecure-registries": ["45.249.208.118:5000"]
}
EOF
# 重启 Docker
systemctl restart docker
步骤 3:启动服务
docker compose -f docker-compose.prod.yml up -d
完成! 等待 1-2 分钟,访问 http://您的服务器IP:4320
📞 技术支持
如有问题,请联系技术支持。
---
## 🎯 与目标的一致性
### ✅ 已实现的目标
1. **一条命令部署** ✅
```bash
docker compose -f docker-compose.prod.yml up -d
-
无需源码 ✅
- 客户不需要源代码
- 只需要配置文件和镜像
-
私有镜像 ✅
- 从 Registry 拉取
- 代码不泄露
-
自动化配置 ✅
- 自动配置数据库
- 自动配置 MinIO
- 自动配置网络
📊 对比
| 特性 | 当前方案(Registry) | 之前方案(tar 上传) |
|---|---|---|
| 部署命令 | docker compose up -d |
需要上传 tar + 加载 + 部署 |
| 需要源码 | ❌ 不需要 | ✅ 需要 |
| 代码保护 | ✅ 私有镜像 | ❌ 源码可见 |
| 部署时间 | 1-2 分钟 | 5-10 分钟 |
| 客户操作 | 3 步 | 10+ 步 |
🚀 下一步
- ✅ 搭建 Registry(已完成)
- ✅ 推送镜像到 Registry(使用
一键镜像部署.ps1) - ⏳ 创建客户部署包(包含配置文件)
- ⏳ 编写客户部署文档(简化版)
- ⏳ 测试客户部署流程(模拟客户环境)
📦 创建客户部署包脚本
可以创建一个脚本自动生成客户部署包:
# scripts/deploy/create-customer-package.ps1
# 创建客户部署包
$packageDir = "customer-deploy-package"
New-Item -ItemType Directory -Path $packageDir -Force | Out-Null
# 复制必要文件
Copy-Item "docker-compose.prod.yml" "$packageDir/"
Copy-Item ".env.example" "$packageDir/"
# 创建客户 README
@"
# FLNXI素材库 - 快速部署指南
## 一键部署(3 步)
1. 配置 .env 文件
2. 运行: docker compose -f docker-compose.prod.yml up -d
3. 访问: http://您的服务器IP:4320
详细说明请查看 README.md
"@ | Out-File "$packageDir/README.md" -Encoding UTF8
# 打包
Compress-Archive -Path "$packageDir/*" -DestinationPath "customer-deploy-package.zip"
Write-Host "✓ 客户部署包已创建: customer-deploy-package.zip" -ForegroundColor Green
✅ 总结
是的,搭建完 Docker Registry 后,完全符合"一键部署"的目标!
客户现在只需要:
- 下载部署包(配置文件)
- 修改
.env文件(3-5 个配置项) - 运行
docker compose up -d
无需源码,一条命令,完全自动化! 🎉