LocalAI: pin the CPU backends when the container has no GPU runtime (#17909)

LocalAI resolves meta backends from the GPU vendor it reads out of sysfs,
which is the host's card even with no driver installed in the container,
so llama-cpp became cuda12-llama-cpp and never started (#17908). Force
the default capability unless a CUDA, ROCm or Level Zero runtime is
present; update adds the pin to existing installs.
This commit is contained in:
CanbiZ (MickLesk)
2026-10-13 18:10:07 +02:00
committed by GitHub
parent 82a6154ea9
commit 6234161462
2 changed files with 15 additions and 0 deletions
+9
View File
@@ -37,6 +37,15 @@ function update_script() {
exit
fi
# Older installs have no CPU pin; on a host with a GPU but no driver in the
# container every model then ends in "backend not found".
if ! grep -q '^LOCALAI_FORCE_META_BACKEND_CAPABILITY=' /opt/localai.env 2>/dev/null &&
! ldconfig -p 2>/dev/null | grep -qE 'libcuda[.]so|libamdhip64[.]so|libze_intel_gpu[.]so|libze_loader[.]so'; then
echo "LOCALAI_FORCE_META_BACKEND_CAPABILITY=default" >>/opt/localai.env
systemctl restart localai
msg_ok "Pinned LocalAI to the CPU backends (no GPU runtime in the container)"
fi
if check_for_gh_release "localai" "mudler/LocalAI"; then
msg_info "Stopping Service"
systemctl stop localai
+6
View File
@@ -39,6 +39,12 @@ LOCALAI_MODELS_PATH=/opt/localai_data/models
LOCALAI_BACKENDS_PATH=/opt/localai_data/backends
LOCALAI_LOG_LEVEL=info
EOF
# LocalAI picks the backend variant from the GPU it sees in sysfs, which is the
# host's card even when no driver was installed in here, and a CUDA/ROCm/SYCL
# backend then never starts. Pin the CPU variants unless a runtime is present.
if ! ldconfig -p 2>/dev/null | grep -qE 'libcuda[.]so|libamdhip64[.]so|libze_intel_gpu[.]so|libze_loader[.]so'; then
echo "LOCALAI_FORCE_META_BACKEND_CAPABILITY=default" >>/opt/localai.env
fi
# LocalAI refuses to start on a wildcard bind with nothing to identify callers,
# and binding the wildcard is what makes the container reachable at all.
if [[ "$var_auth" == "yes" ]]; then