
issue: v0.9.6 hangs in Dockr
快速结论:升级 Open WebUI 到 v0.9.6 时,Docker 容器在启动时挂起(hang),日志停留在 Alembic 迁移阶段。优先排查:容器启动后是否给足时间让迁移完成(某些迁移可能需要数分钟到半小时),以及数据卷是否存储在本地而非 NFS/网络路径上。
问题场景
用户在 macOS Sonoma 上通过 Docker 运行 Open WebUI,从旧版本(v0.7.2)直接升级到 v0.9.6,使用 SQLite 数据库,挂载本地目录作为数据卷。容器启动后无响应,日志停留在 WARNI [open_webui.env] 之后,看不到应用继续启动的迹象。
报错原文
WARNI [open_webui.env]
WARNING: CORS_ALLOW_ORIGIN IS SET TO '*' - NOT RECOMMENDED FOR PRODUCTION DEPLOYMENTS.
...
(之后无更多日志输出,容器看似永久挂起)
实际行为中,用户观察到容器启动后没有任何进一步的日志,并且从 v0.7.2 升级到 v0.9.6 后,数据目录被迁移,无法降级回 v0.7.2。
原因分析
可能原因:Open WebUI v0.8.x 到 v0.9.x 之间引入了大量 Alembic 数据库迁移(schema 变更)。这些迁移在启动时自动执行,对于 SQLite 数据库和较大的历史数据(如大量聊天记录),迁移耗时可能从几分钟到半小时不等。用户可能未等待足够长的时间就认为容器挂起了。
另一个可能原因是数据卷存储在 NFS 或网络文件系统上(虽然用户声称是本地存储),但 SQLite 数据库要求本地存储,不能通过网络加载。如果实际环境存在此问题,迁移将无法正常完成。
此外,更早的版本(如 v0.7.2)跳过了多个中间迁移版本(如 v0.8.12 到 v0.9.5 期间已知的迁移失败问题,见 #25093),直接升级到 v0.9.6 可能触发更多的 schema 迁移步骤,增加了挂起的可能性。
环境排查
- 确认 Docker 数据卷路径
$HOME/.open-webui/data所在的磁盘是本地存储(非 NFS、非 CIFS、非网络挂载) - 确认主机操作系统、Docker 版本
- 确认数据库大小(数据卷中
webui.db或相关 SQLite 文件的大小) - 确认 Open WebUI 版本号(Docker 镜像标签)
- 确认是否使用了
offline_mode环境变量(开发者建议尝试设置) - 确认
GLOBAL_LOG_LEVEL=DEBUG已设置,并检查是否还有其他环境变量影响了启动流程 - 排查是否安装了旧版插件,需要按照 插件迁移指南 进行迁移
解决步骤
- 首先做数据备份:在继续之前,停止当前容器,将
$HOME/.open-webui/data目录完整复制备份到安全位置。 - 延长等待时间:重新启动 v0.9.6 容器,设置
GLOBAL_LOG_LEVEL=DEBUG和offline_mode=true,然后等待至少 30 分钟,观察日志是否有后续输出(在WARNI [open_webui.env]之后,迁移可能需要较长时间,尤其当数据库已有大量数据时)。 - 如果是全新数据库:如果数据卷是新建的空目录(无用户数据),迁移仍然挂起,则可能是环境问题或镜像问题。尝试使用最新稳定版镜像(如 v0.9.7 或更新的版本)来复现。
- 如果迁移最终成功:确认应用正常启动后,进行功能验证。
- 如果迁移始终失败:可优先尝试恢复到备份的数据卷,然后使用增量升级策略——先升级到 v0.8.x(如 v0.8.12),待迁移完成后再升级到 v0.9.x,避免跳过大量版本。
验证方法
启动容器后,观察日志中是否出现类似 vX.Y.Z - building the best AI user interface. 的提示(表明应用已启动完成),并在浏览器中访问 http://localhost:8080 确认 WebUI 正常响应。如果日志中出现 Connected to SQLite database 和迁移结束的标记(如 Context impl SQLiteImpl. 之后的 INFO 日志),说明迁移已完成。



