返回 Bug 清单
BUG-0494project-52高已修复docker-registry

阿里云快照回滚后 Docker volume 元数据在但 _data 内容全丢

发现:2026-10-07验证:2026-10-11置信度:70%

症状

Gitea DB 里 153 个仓库记录完整、用户完整、元数据完整,但 /data/git/repositories/ 目录只剩 4KB 空壳。docker volume ls 显示 volume 存在但容器内 /data/repositories/ 空。

根因

阿里云 ECS 快照回滚时,系统盘快照 + 数据盘快照如果不是在同一个时刻创建的(或者 snapshot 顺序问题),/dev/nvme0n1p1(数据盘,挂载 /data)上的 Docker volume _data 目录会被回滚到更早状态,但 /dev/nvme1n1p3(根盘)上的 Docker daemon 元数据保持新版本。Gitea 的 repositories/ 目录挂在 Docker volume 上,DB 记录在但物理仓库全丢。

修复方案

双层防护:(1) DB 热备 + 物理仓库 rsync 到备机(每日增量);(2) 快照必须系统盘+数据盘**同一时刻**创建,回滚时**两块盘一起回滚**;(3) Gitea repositories 不要挂 Docker volume,直接存数据盘路径,避免 volume 元数据/数据层分离不一致。

错误签名

Docker volume ls 显示存在,但 docker volume inspect → Mountpoint /var/lib/docker/volumes/xxx/_data 为空目录,容器内数据全没

技术信息

来源项目

project-52

涉及文件

/data/docker/volumes/, /data/git/repositories/, /data/gitea/gitea.db

标签

project-52, mcp-reported, source-agent