mirror of
https://github.com/mudler/LocalAI.git
synced 2026-08-02 19:40:11 -04:00
Bundles the dependency closure for the from-scratch image, the dlopened ggml CPU-variant shared objects that ldd cannot see, and upstream's bundled silero_vad and marblenet_vad assets so VAD works with no download. The bundled loader sits in the package ROOT rather than at lib/ld.so. run.sh execs it, which makes /proc/self/exe name the loader, and this backend has two consumers of that path: ggml discovers the libggml-cpu-*.so by listing dirname(/proc/self/exe), and resolve_model_path expands bundled:<name> under the same directory. Rooting the loader makes the binary, the ggml objects and assets/ share the one directory all three resolution mechanisms agree on. llama-cpp's lib/ld.so layout would need assets/ moved into lib/ as well. The image builds against apt gRPC and protobuf, like Dockerfile.ds4 and unlike Dockerfile.privacy-filter. The from-source gRPC that install-base-deps.sh and the base-grpc-* images supply vendors protobuf 26, which pulls abseil into message_lite.h; with SPM_PROTOBUF_PROVIDER=package that collides with sentencepiece's vendored mini-abseil and every absl::internal reference becomes ambiguous. Noble's protobuf 3.21.12 predates the abseil dependency and is the pair every earlier verification of this backend ran against. Assisted-by: Claude:claude-opus-5 [Claude Code] Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
68 lines
2.2 KiB
Plaintext
68 lines
2.2 KiB
Plaintext
.idea
|
|
.github
|
|
.vscode
|
|
.devcontainer
|
|
models
|
|
backends
|
|
volumes
|
|
examples/chatbot-ui/models
|
|
backend/go/image/stablediffusion-ggml/build/
|
|
backend/go/*/build
|
|
backend/go/*/.cache
|
|
backend/go/*/sources
|
|
backend/go/*/package
|
|
examples/rwkv/models
|
|
examples/**/models
|
|
Dockerfile*
|
|
__pycache__
|
|
|
|
# SonarQube
|
|
.scannerwork
|
|
|
|
# backend virtual environments
|
|
**/venv
|
|
backend/python/**/source
|
|
|
|
# In-place llama.cpp clone + per-variant build copies. The Makefile
|
|
# clones llama.cpp itself at the pinned LLAMA_VERSION; if a stale
|
|
# local checkout is COPY'd into the image, the `llama.cpp:` target
|
|
# sees the directory and skips re-cloning, so grpc-server.cpp ends
|
|
# up compiled against whatever (likely older) commit the host had.
|
|
backend/cpp/llama-cpp/llama.cpp
|
|
backend/cpp/llama-cpp-*-build
|
|
|
|
# privacy-filter: same in-place pattern. The Makefile fetches privacy-filter.cpp
|
|
# at the pinned commit (or symlinks a PRIVACY_FILTER_SRC checkout for local dev).
|
|
# A stale dir/symlink COPY'd into the image makes the clone step fail (dangling
|
|
# symlink) or compile against the wrong commit, so keep host build state out.
|
|
backend/cpp/privacy-filter/privacy-filter.cpp
|
|
backend/cpp/privacy-filter/build
|
|
backend/cpp/privacy-filter/grpc-server
|
|
backend/cpp/privacy-filter/package
|
|
|
|
# audio-cpp: same in-place pattern. The Makefile clones audio.cpp at the pinned
|
|
# AUDIO_CPP_VERSION and the `audio.cpp:` target is the directory itself, so a
|
|
# stale host checkout COPY'd in makes the build compile against whatever commit
|
|
# the host had. build/ is worse than stale: its CMakeCache.txt records the host
|
|
# source, prefix and compiler paths, and cmake refuses to reconfigure from it.
|
|
backend/cpp/audio-cpp/audio.cpp
|
|
backend/cpp/audio-cpp/build
|
|
backend/cpp/audio-cpp/grpc-server
|
|
backend/cpp/audio-cpp/package
|
|
|
|
# Rust backend build output (sources are tracked; target/ is generated)
|
|
backend/rust/*/target
|
|
|
|
# Local-only artifacts that bloat the build context but the image never needs.
|
|
# Saved image tarballs, locally-installed backends, the host-built binary, and
|
|
# assorted tool/scratch dirs. None of these are git-tracked.
|
|
backend-images
|
|
local-backends
|
|
local-ai
|
|
.crush
|
|
protoc
|
|
tests
|
|
|
|
# Installed via npm inside the build stage; no need to ship the host copy.
|
|
**/node_modules
|