ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

为什么 Docker 版 Odysseus 备份不包含 ChromaDB 数据以及如何单独备份

为什么 Docker 版 Odysseus 备份不包含 ChromaDB 数据以及如何单独备份 为什么 Docker 版 Odysseus 备份不包含 ChromaDB 数据以及如何单独备份【免费下载链接】odysseusSelf-hosted AI workspace.项目地址: https://gitcode.com/gh_mirrors/ody/odysseus如果你用 Docker Compose 运行 Odysseus并且打算用自带的scripts/odysseus-backup做状态备份会碰到一个坑快照 tarball 里没有 ChromaDB 的向量数据。这篇说明解释原因两者在 Docker 下的存储位置不同并给出文档中实际提供的两步操作路径在宿主机上快照data/再单独归档 ChromaDB 的命名卷。先搞清楚数据在 Docker 下放在哪里odysseus-backup只快照仓库根目录下的data/目录——SQLite 数据库app.db、Fernet 加密密钥data/.app_key、vault、memory、RAG 索引、个人文档和 uploads 都在这里详见 docs/backup-restore.md。而 Docker Compose 配置里ChromaDB 是一个独立服务它的向量存储放在 Compose 管理的命名卷chromadb-data中挂载到容器内的/chroma/chroma并不在./data下见 docker-compose.yml 的chromadb服务与volumes声明。odysseus-backup只读data/所以这个卷自然不在快照范围内。对应的反例是原生安装ChromaDB 数据位于data/chroma/会随odysseus-backup snapshot一起打包不需要额外操作。下面的单独备份只适用于 Docker 部署。第一步在宿主机上快照 data/文档明确提醒Docker 部署下在宿主机运行该工具而不是在容器内。原因是backups/不是挂载卷容器内生成的 tarball 会在容器重建时丢失。在仓库根目录执行脚本只依赖 Python 标准库不需要激活应用 venv./scripts/odysseus-backup snapshot生成backups/odysseus-backup-YYYYMMDD-HHMMSS.tar.gz。默认包含data/下除deep_research/和mail-attachments/之外的全部内容个人上传和文档包含在内。按需可选--include-research把体积较大的data/deep_research/研究运行记录一并打入--include-attachments打入data/mail-attachments/可再生的 IMAP 附件缓存--out PATH写到指定路径该路径必须在data/之外。SQLite 数据库通过.backupAPI 复制而不是直接拷文件应用在运行时执行快照也安全。注意快照包含 Fernet 密钥、vault 和存储的 provider/API token文档要求把它当密码对待——存放在私有位置不要提交到 Git异地复制优先选加密目的地。快照完成后先做完整性校验只读打开 tarball 遍历成员不解压./scripts/odysseus-backup verify backups/odysseus-backup-20260101-120000.tar.gz所有命令输出 JSON 结果加--pretty可得到缩进格式。第二步单独归档 ChromaDB 卷文档给出的流程分两小步先找到卷的真实名称再归档。Compose 会给命名卷加上项目名前缀所以先确认实际卷名假设你的项目目录下卷名形如project_chromadb-data以 grep 输出为准docker volume ls | grep chromadb然后用一次性容器把卷内容打成 tarball写到当前目录docker run --rm -v project_chromadb-data:/data -v $PWD:/backup \ alpine tar czf /backup/chromadb.tar.gz -C /data .命令说明project需要替换成上一步 grep 输出中卷名的项目名前缀例如 grep 显示myproject_chromadb-data则-v前缀写成myproject_chromadb-data--rm表示任务完成后自动删除这个临时容器执行时 Docker 会临时拉取alpine镜像需要网络归档产物落在命令执行时的当前目录——从仓库根目录运行chromadb.tar.gz就和仓库文件放在一起。这条命令只是读取卷内容并生成归档不会修改或删除卷本身。备份后的限制与边界文档只给出 ChromaDB 卷的备份方式没有描述把chromadb.tar.gz恢复到卷里的操作步骤恢复侧只有odysseus-backup restore覆盖data/的流程。restore是破坏性操作必须带--yes执行前工具会把当前data/改名为data.before-restore-timestamp留在仓库根目录恢复错了可以删掉恢复出的data/再把暂存目录改回来。快照默认不含deep_research/与mail-attachments/如果你的研究记录也要进备份记得用--include-research不要默认它们已经在 tarball 里。参考docs/backup-restore.md、docker-compose.yml、scripts/odysseus-backup。【免费下载链接】odysseusSelf-hosted AI workspace.项目地址: https://gitcode.com/gh_mirrors/ody/odysseus创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表