flnxi-Wu/docs/archive/私有镜像仓库部署指南.md
WuYongJie 63ec6b7dfb fix: 修复排行榜按钮消失、tag排序和输入框浅色模式问题
1. 排行榜悬浮窗关闭后小按钮消失问题
   - 修复面板居中模式关闭时按钮位置错误
   - 保存并恢复按钮的居中状态

2. 首页tag按钮按素材数量排序
   - 添加按素材数量降序排序逻辑

3. 上传弹窗输入框浅色模式文字不可见
   - 添加 text-slate-900 确保浅色模式下文字可见
   - 添加 placeholder 样式确保占位符正确显示
2025-12-14 21:41:29 +08:00

396 lines
8.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 私有镜像仓库部署指南
## 📋 概述
本系统支持**私有镜像仓库部署**,确保:
- ✅ 其他公司使用系统时**看不到源码**
- ✅ 直接从构建好的镜像服务器下载镜像
- ✅ 所有依赖资源从国内镜像源下载
- ✅ 支持一键从标准版升级到Pro版
---
## 🏗️ 架构设计
### 镜像仓库结构
```
your-registry.com/
├── flnxi-material:standard-latest # 标准版镜像
└── flnxi-material:pro-latest # Pro版镜像
```
### 部署流程
```
1. 开发环境构建镜像
↓
2. 推送到私有镜像仓库
↓
3. 客户服务器配置镜像仓库地址
↓
4. 客户直接拉取镜像部署(无需源码)
```
---
## 🔧 配置步骤
### 0. 快速部署(推荐)
**在 git.1080p.hk 服务器上执行**:
```bash
# 上传部署脚本
scp scripts/server/setup-registry.sh root@git.1080p.hk:/root/
# SSH登录服务器
ssh root@git.1080p.hk
# 执行部署(带认证)
chmod +x /root/setup-registry.sh
REGISTRY_USER=registry-user REGISTRY_PASSWORD=your-secure-password \
/root/setup-registry.sh
# 或执行部署(无认证,仅内网使用)
/root/setup-registry.sh
```
### 1. 设置私有镜像仓库
#### 1.1 使用Docker Registry(推荐)
**方式1:使用部署脚本(推荐)**
```bash
# 在 git.1080p.hk 服务器上执行
bash scripts/server/setup-registry.sh
```
**方式2:手动部署**
```bash
# 在 git.1080p.hk 服务器上执行
# 拉取Registry镜像
docker pull registry:2
# 运行Registry(HTTP版本,内网使用)
docker run -d \
--name docker-registry \
-p 5000:5000 \
-v /var/lib/docker-registry:/var/lib/registry \
--restart=always \
registry:2
```
**方式3:使用Docker Compose(推荐用于生产环境)**
```bash
# 上传 docker-compose-registry.yml 到服务器
scp docker-compose-registry.yml root@git.1080p.hk:/root/
# 启动
ssh root@git.1080p.hk
cd /root
docker compose -f docker-compose-registry.yml up -d
```
#### 1.2 配置HTTPS(生产环境必须)
```bash
# 生成证书
mkdir -p /etc/docker/registry
openssl req -x509 -newkey rsa:4096 -nodes \
-keyout /etc/docker/registry/domain.key \
-out /etc/docker/registry/domain.crt \
-days 365 \
-subj "/CN=your-registry.com"
# 使用HTTPS运行
docker run -d \
--name docker-registry \
-p 5000:5000 \
-v /etc/docker/registry:/certs \
-v /var/lib/registry:/var/lib/registry \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
-e REGISTRY_HTTP_TLS_PRIVATE_KEY=/certs/domain.key \
--restart=always \
registry:2
```
### 2. 构建和推送镜像
#### 2.1 构建标准版镜像
```bash
# 构建镜像
docker build -t your-registry.com:5000/flnxi-material:standard-latest .
# 标记镜像
docker tag your-registry.com:5000/flnxi-material:standard-latest \
your-registry.com:5000/flnxi-material:standard-$(date +%Y%m%d)
# 推送到仓库
docker push your-registry.com:5000/flnxi-material:standard-latest
docker push your-registry.com:5000/flnxi-material:standard-$(date +%Y%m%d)
```
#### 2.2 构建Pro版镜像
```bash
# Pro版使用相同的Dockerfile,但通过环境变量区分
docker build -t your-registry.com:5000/flnxi-material:pro-latest .
# 标记镜像
docker tag your-registry.com:5000/flnxi-material:pro-latest \
your-registry.com:5000/flnxi-material:pro-$(date +%Y%m%d)
# 推送到仓库
docker push your-registry.com:5000/flnxi-material:pro-latest
docker push your-registry.com:5000/flnxi-material:pro-$(date +%Y%m%d)
```
### 3. 客户服务器配置
#### 3.1 配置镜像仓库地址
**在客户服务器上配置**(`/etc/docker/daemon.json`):
```json
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
],
"insecure-registries": [
"your-registry.com:5000"
]
}
```
**如果使用HTTPS**,移除 `insecure-registries`,配置证书:
```bash
# 复制证书到客户服务器
scp your-registry.com:/etc/docker/registry/domain.crt /etc/docker/certs.d/your-registry.com:5000/ca.crt
# 重启Docker
sudo systemctl restart docker
```
#### 3.2 配置环境变量
**创建 `.env` 文件**:
```bash
# Docker镜像仓库地址
DOCKER_REGISTRY=your-registry.com:5000
# 镜像标签
IMAGE_TAG=latest
# 服务器IP
SERVER_IP=客户服务器IP
# 数据库密码(建议修改)
POSTGRES_PASSWORD=your-secure-password
# MinIO密码(Pro版需要)
MINIO_ROOT_PASSWORD=your-secure-password
```
### 4. 部署标准版
```bash
# 1. 上传配置文件
scp docker-compose.standard.yml root@客户服务器:/root/deploy/
scp .env root@客户服务器:/root/deploy/
# 2. SSH登录客户服务器
ssh root@客户服务器
# 3. 配置Docker镜像加速器
bash scripts/server/setup-docker-mirror.sh
# 4. 部署
cd /root/deploy
docker compose -f docker-compose.standard.yml --env-file .env up -d
```
### 5. 升级到Pro版
#### 方式1:使用升级脚本(推荐)
**PowerShell(Windows)**:
```powershell
.\scripts\deploy\upgrade-to-pro.ps1 `
-Server 客户服务器IP `
-DockerRegistry your-registry.com:5000 `
-ImageTag latest
```
**Bash(Linux)**:
```bash
export DOCKER_REGISTRY=your-registry.com:5000
export IMAGE_TAG=latest
bash scripts/deploy/upgrade-to-pro.sh
```
#### 方式2:手动升级
```bash
# 1. 备份
cd /root/deploy
mkdir -p backup
cp docker-compose.yml backup/
docker compose exec -T postgres pg_dump -U postgres flnxi > backup/db.sql
# 2. 停止服务
docker compose down
# 3. 切换配置
ln -sf docker-compose.prod.yml docker-compose.yml
# 4. 更新环境变量
echo "DOCKER_REGISTRY=your-registry.com:5000" >> .env
echo "IMAGE_TAG=latest" >> .env
# 5. 拉取镜像
docker pull your-registry.com:5000/flnxi-material:pro-latest
docker pull minio/minio:RELEASE.2025-04-22T22-12-26Z
docker pull minio/mc:RELEASE.2025-04-22T22-12-26Z
# 6. 启动服务
docker compose --env-file .env up -d
```
---
## 🔒 安全配置
### 1. 镜像仓库认证
**启用认证**:
```bash
# 创建认证文件
mkdir -p /auth
docker run --entrypoint htpasswd httpd:2 \
-Bbn username password > /auth/htpasswd
# 使用认证运行Registry
docker run -d \
--name docker-registry \
-p 5000:5000 \
-v /auth:/auth \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
registry:2
```
**客户服务器登录**:
```bash
docker login your-registry.com:5000
# 输入用户名和密码
```
### 2. 网络隔离
- 使用内网部署Registry
- 配置防火墙规则
- 使用VPN访问(如需要)
---
## 📝 版本管理
### 镜像标签策略
```
标准版:
- standard-latest # 最新版本
- standard-20251115 # 日期版本
- standard-v1.0.0 # 语义版本
Pro版:
- pro-latest # 最新版本
- pro-20251115 # 日期版本
- pro-v1.0.0 # 语义版本
```
### 更新流程
1. **构建新镜像**
2. **推送到仓库**(保留旧版本)
3. **在测试环境验证**
4. **通知客户更新**
5. **客户执行升级脚本**
---
## ✅ 检查清单
### 镜像仓库配置
- [ ] Registry服务已部署
- [ ] HTTPS证书已配置(生产环境)
- [ ] 认证已启用(如需要)
- [ ] 镜像已构建并推送
### 客户服务器配置
- [ ] Docker镜像加速器已配置
- [ ] 镜像仓库地址已配置
- [ ] 证书已安装(HTTPS)
- [ ] 环境变量已设置
### 部署验证
- [ ] 标准版部署成功
- [ ] 应用可以正常访问
- [ ] 数据存储正常
- [ ] 升级到Pro版成功
---
## 🐛 故障排查
### 问题1:无法拉取镜像
**原因**:镜像仓库地址配置错误或网络问题
**解决**:
```bash
# 检查配置
docker info | grep -A 10 "Insecure Registries"
# 测试连接
curl -k https://your-registry.com:5000/v2/
# 检查DNS
nslookup your-registry.com
```
### 问题2:认证失败
**原因**:未登录或凭证错误
**解决**:
```bash
# 重新登录
docker login your-registry.com:5000
# 检查凭证
cat ~/.docker/config.json
```
### 问题3:升级失败
**原因**:配置错误或镜像不存在
**解决**:
```bash
# 检查镜像是否存在
docker pull your-registry.com:5000/flnxi-material:pro-latest
# 检查配置文件
cat docker-compose.prod.yml | grep image
# 查看日志
docker compose logs
```
---
**最后更新**:2025-11-15