issue:Cannot run on lower instruction set.

用户在装有 Intel D525 处理器的 Debian 14 系统上,通过 Docker 运行 Open WebUI v0.9.6。容器启动后立即被系统杀死(killed),没有任何正常日志输出。

issue:Cannot run on lower instruction set.

issue:Cannot run on lower instruction set.

快速结论:该错误通常发生在 CPU 仅支持 x86-64‑v1 指令集(如较老的 Intel Atom D525 等型号)时,Open WebUI 依赖的某些 Python 包(如 sentence‑transformers)编译时启用了较新的 AVX/AVX2 指令,导致 Docker 容器在启动时直接崩溃(killed)。优先排查 CPU 是否支持 avx2 指令集,或考虑使用离线模式(OFFLINE_MODE)减少依赖。

问题场景

用户在装有 Intel D525 处理器的 Debian 14 系统上,通过 Docker 运行 Open WebUI v0.9.6。容器启动后立即被系统杀死(killed),没有任何正常日志输出。

报错原文

The container was killed.

同时,用户在关联 Issue #24533 中报告了类似的 illegal instruction 错误。

原因分析

可能原因:Open WebUI 的 Docker 镜像中部分预编译的 Python 依赖(如 sentence-transformerstorch 等)使用了 AVX、AVX2 或 FMA 等较新的 x86‑64 指令集扩展。而 Intel D525 是 x86‑64‑v1 级别 CPU,不支持这些指令。当操作系统或 Python 运行时尝试执行包含不支持的指令的机器码时,会触发 SIGILL(非法指令)或直接被内核杀死容器进程,表现为“容器被 killed”。

官方在评论中确认:“it’s not only about local sentence transformer … many other dependencies have this requirement. It’s just not possible” —— 指单纯禁用本地模型服务(如通过 OFFLINE_MODE)无法完全避免该问题,因为底层依赖库在编译时就假设了 x86‑64‑v2/v3 指令集。

环境排查

  • CPU 型号及支持指令集:通过 lscpu | grep Flags 查看是否包含 avx、avx2、fma。
  • Linux 发行版及内核版本:Debian 14,注意这类较老 CPU 建议使用更新的内核。
  • Docker 版本及镜像标签:确认使用的是 open-webui:0.9.6 等标准镜像。
  • 尝试设置环境变量 OFFLINE_MODE=true 启动容器,观察是否能缓解(官方注释:该变量仅影响句子嵌入模型下载,不会解决底层库的问题)。

解决步骤

  1. 确认 CPU 指令集级别:在宿主机运行 cat /proc/cpuinfo | grep flags | head -1,检查是否包含 avx2。如果不包含,确认 CPU 仅为 x86‑64‑v1 级别。
  2. 尝试使用官方 Docker 镜像的 OFFLINE_MODE=true启动时添加环境变量 -e OFFLINE_MODE=true,这可以禁用 sentence‑transformer 相关下载和加载。但这在 Issue 中被确认无法彻底解决问题。
  3. (可优先尝试)改用社区提供的低指令集编译版本:搜索是否有维护者或社区成员在 GitHub 上提供了针对 x86‑64‑v1 编译的 Open WebUI 镜像,或询问在该 Issue 下是否有人给出了替代方案。
  4. 考虑更换较新的硬件:如果上述步骤均不行,较新 CPU(如支持 AVX2 的 Intel J1900 以上)是最直接的解决方式。
  5. 自行从源码编译:在原系统上,参考 Open WebUI 的 Dockerfile,修改其基础镜像或 pip install 的参数(如 --force-reinstall --no-binary :all:)来强制从源码编译依赖。但这可能非常耗时且需要开发经验。
  6. 在 Docker 层面禁用特定指令集:在 Docker run 命令中添加 --security-opt seccomp=unconfined 或通过 --cpu-rt-runtime 等参数尝试,但通常无法解决底层二进制指令不兼容。

验证方法

容器启动后,使用 docker ps 确认容器处于运行状态。再通过 docker logs 容器ID 查看是否有正常启动日志(如 Uvicorn running on http://0.0.0.0:8080)。如果日志仍为空或容器再次被 killed,则问题未解决。

参考来源

open-webui/open-webui #26150

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

celebrityanime
celebrityanime
文章: 8907

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注