1. 排行榜悬浮窗关闭后小按钮消失问题 - 修复面板居中模式关闭时按钮位置错误 - 保存并恢复按钮的居中状态 2. 首页tag按钮按素材数量排序 - 添加按素材数量降序排序逻辑 3. 上传弹窗输入框浅色模式文字不可见 - 添加 text-slate-900 确保浅色模式下文字可见 - 添加 placeholder 样式确保占位符正确显示
9.1 KiB
9.1 KiB
在 git.1080p.hk 服务器部署 Docker 镜像仓库指南
📋 重要说明
Git 仓库 ≠ Docker 镜像仓库
- Git 仓库(如
http://git.1080p.hk/WuYongJie/flnxi-Wu):用于存储源代码 - Docker 镜像仓库(Registry):用于存储Docker 镜像(编译后的二进制文件)
不能在 Git 仓库中存储 Docker 镜像,需要单独部署 Docker Registry 服务。
🏗️ 推荐方案
方案1:在同一服务器上部署 Docker Registry(推荐)
如果 git.1080p.hk 是您的服务器,可以在同一台服务器上部署 Docker Registry。
优点:
- ✅ 无需额外服务器
- ✅ 统一管理
- ✅ 内网访问速度快
架构:
git.1080p.hk 服务器
├── Gitea (端口: 3000) # Git代码仓库
└── Docker Registry (端口: 5000) # Docker镜像仓库
方案2:创建独立的镜像仓库服务器
如果希望分离,可以创建:
registry.1080p.hk- 专门用于Docker镜像仓库git.1080p.hk- 继续用于Git代码仓库
🚀 部署步骤(方案1:同一服务器)
1. 在 git.1080p.hk 服务器上部署 Docker Registry
1.1 使用 Docker 运行 Registry
# SSH登录服务器
ssh root@git.1080p.hk
# 创建存储目录
mkdir -p /var/lib/docker-registry
chmod 755 /var/lib/docker-registry
# 运行 Docker Registry(HTTP版本,内网使用)
docker run -d \
--name docker-registry \
--restart=always \
-p 5000:5000 \
-v /var/lib/docker-registry:/var/lib/registry \
registry:2
# 验证运行
docker ps | grep registry
curl http://localhost:5000/v2/
1.2 配置 HTTPS(生产环境推荐)
# 创建证书目录
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=registry.1080p.hk"
# 使用HTTPS运行
docker stop docker-registry
docker rm docker-registry
docker run -d \
--name docker-registry \
--restart=always \
-p 5000:5000 \
-v /etc/docker/registry:/certs \
-v /var/lib/docker-registry:/var/lib/registry \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
-e REGISTRY_HTTP_TLS_PRIVATE_KEY=/certs/domain.key \
registry:2
1.3 配置 Nginx 反向代理(可选,推荐)
如果服务器已有 Nginx,可以配置反向代理:
# /etc/nginx/sites-available/docker-registry
server {
listen 80;
server_name registry.1080p.hk;
# 重定向到HTTPS
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name registry.1080p.hk;
ssl_certificate /etc/docker/registry/domain.crt;
ssl_certificate_key /etc/docker/registry/domain.key;
# 允许大文件上传
client_max_body_size 0;
chunked_transfer_encoding on;
location / {
proxy_pass http://localhost:5000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# Docker Registry 特殊配置
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
}
}
# 启用配置
ln -s /etc/nginx/sites-available/docker-registry /etc/nginx/sites-enabled/
nginx -t
systemctl reload nginx
2. 配置镜像仓库地址
2.1 在构建服务器上配置
编辑 /etc/docker/daemon.json:
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com"
],
"insecure-registries": [
"git.1080p.hk:5000",
"registry.1080p.hk:5000"
]
}
如果使用HTTPS,移除 insecure-registries,配置证书:
# 复制证书到客户端
scp root@git.1080p.hk:/etc/docker/registry/domain.crt /etc/docker/certs.d/git.1080p.hk:5000/ca.crt
# 或使用域名
mkdir -p /etc/docker/certs.d/registry.1080p.hk:5000
scp root@git.1080p.hk:/etc/docker/registry/domain.crt /etc/docker/certs.d/registry.1080p.hk:5000/ca.crt
2.2 重启 Docker
sudo systemctl daemon-reload
sudo systemctl restart docker
3. 构建和推送镜像
3.1 构建镜像
# 在本地或构建服务器上
cd /path/to/flnxi_sucai
# 构建标准版
docker build -t git.1080p.hk:5000/flnxi-material:standard-latest .
# 构建Pro版(使用相同Dockerfile,通过环境变量区分)
docker build -t git.1080p.hk:5000/flnxi-material:pro-latest .
3.2 推送镜像
# 登录(如果需要认证)
docker login git.1080p.hk:5000
# 推送标准版
docker push git.1080p.hk:5000/flnxi-material:standard-latest
# 推送Pro版
docker push git.1080p.hk:5000/flnxi-material:pro-latest
# 推送带版本号的镜像
docker tag git.1080p.hk:5000/flnxi-material:standard-latest \
git.1080p.hk:5000/flnxi-material:standard-$(date +%Y%m%d)
docker push git.1080p.hk:5000/flnxi-material:standard-$(date +%Y%m%d)
4. 更新配置文件
4.1 更新 docker-compose 文件
标准版 (docker-compose.standard.yml):
app:
image: git.1080p.hk:5000/flnxi-material:standard-${IMAGE_TAG:-latest}
Pro版 (docker-compose.prod.yml):
app:
image: git.1080p.hk:5000/flnxi-material:pro-${IMAGE_TAG:-latest}
4.2 更新环境变量示例
# .env 文件
DOCKER_REGISTRY=git.1080p.hk:5000
IMAGE_TAG=latest
🔒 安全配置(可选但推荐)
1. 启用认证
# 创建认证目录
mkdir -p /auth
# 创建用户密码文件
docker run --entrypoint htpasswd httpd:2 \
-Bbn registry-user your-secure-password > /auth/htpasswd
# 使用认证运行Registry
docker stop docker-registry
docker rm docker-registry
docker run -d \
--name docker-registry \
--restart=always \
-p 5000:5000 \
-v /auth:/auth \
-v /var/lib/docker-registry:/var/lib/registry \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
registry:2
客户端登录:
docker login git.1080p.hk:5000
# 输入用户名: registry-user
# 输入密码: your-secure-password
2. 配置防火墙
# 只允许内网访问(推荐)
ufw allow from 192.168.0.0/16 to any port 5000
ufw allow from 10.0.0.0/8 to any port 5000
# 或允许特定IP
ufw allow from 客户服务器IP to any port 5000
📝 使用 Docker Compose 管理 Registry(推荐)
创建 docker-compose-registry.yml:
version: '3.8'
services:
registry:
image: registry:2
container_name: docker-registry
restart: unless-stopped
ports:
- "5000:5000"
volumes:
- /var/lib/docker-registry:/var/lib/registry
- /etc/docker/registry:/certs
- /auth:/auth
environment:
- REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt
- REGISTRY_HTTP_TLS_PRIVATE_KEY=/certs/domain.key
- REGISTRY_AUTH=htpasswd
- REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd
- REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm
networks:
- registry-network
networks:
registry-network:
driver: bridge
管理命令:
# 启动
docker compose -f docker-compose-registry.yml up -d
# 停止
docker compose -f docker-compose-registry.yml down
# 查看日志
docker compose -f docker-compose-registry.yml logs -f
✅ 验证部署
1. 检查 Registry 运行状态
# 检查容器
docker ps | grep registry
# 测试API
curl http://git.1080p.hk:5000/v2/
# 查看镜像列表(需要认证)
curl -u registry-user:your-secure-password \
http://git.1080p.hk:5000/v2/_catalog
2. 测试镜像推送和拉取
# 测试推送
docker pull alpine:latest
docker tag alpine:latest git.1080p.hk:5000/test:latest
docker push git.1080p.hk:5000/test:latest
# 测试拉取
docker pull git.1080p.hk:5000/test:latest
🔄 更新部署脚本
更新 scripts/deploy/local-build-and-upload.ps1,添加镜像推送功能:
# 在构建完成后添加
Write-Step "推送镜像到私有仓库..."
# 登录镜像仓库
docker login ${DockerRegistry} -u ${RegistryUser} -p ${RegistryPassword}
# 推送标准版
docker tag flnxi-material:local-deploy ${DockerRegistry}/flnxi-material:standard-latest
docker push ${DockerRegistry}/flnxi-material:standard-latest
# 推送Pro版(相同镜像,不同标签)
docker tag flnxi-material:local-deploy ${DockerRegistry}/flnxi-material:pro-latest
docker push ${DockerRegistry}/flnxi-material:pro-latest
📋 总结
推荐配置
- 镜像仓库地址:
git.1080p.hk:5000(HTTP)或registry.1080p.hk:5000(HTTPS) - 存储位置:
/var/lib/docker-registry - 认证:启用htpasswd认证(生产环境)
- HTTPS:使用Nginx反向代理(生产环境)
客户使用
客户只需要:
- 配置镜像仓库地址:
DOCKER_REGISTRY=git.1080p.hk:5000 - 拉取镜像:
docker pull git.1080p.hk:5000/flnxi-material:standard-latest - 部署:使用
docker-compose.standard.yml或docker-compose.prod.yml
最后更新:2025-11-15