LocalAI/llama-swap/Dockerfile

30 lines
1.5 KiB
Docker
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# llama-swap mit ROCm (LLMs) + whisper-server (Transkription) + sd-server (Bilder)
#
# Das offizielle unified-Image mit whisper-/sd-server gibt es für AMD nur als
# Vulkan-Build, und unter Vulkan ist die Prompt-Verarbeitung von llama.cpp auf
# der RX 6950 XT nur halb so schnell wie unter ROCm (siehe PLAN-multimodal.md).
# Deshalb: ROCm-Image als Basis, die beiden Server aus dem unified-Image dazu.
# Beide Basis-Images sind Ubuntu 24.04 mit identischen Mesa-/Vulkan-Paketen.
ARG LLAMA_SWAP_TAG
ARG UNIFIED_TAG
FROM ghcr.io/mostlygeek/llama-swap:${UNIFIED_TAG} AS unified
FROM ghcr.io/mostlygeek/llama-swap:${LLAMA_SWAP_TAG}
# Vulkan-Treiber (RADV) für sd-server; ffmpeg ist schon enthalten (whisper --convert)
RUN apt-get update \
&& apt-get install -y --no-install-recommends mesa-vulkan-drivers libvulkan1 libgomp1 \
&& rm -rf /var/lib/apt/lists/*
# sd-server ist statisch gegen ggml gelinkt
COPY --from=unified /usr/local/bin/sd-server /usr/local/bin/sd-server
# whisper-server bringt eigene ggml-Bibliotheken mit, die dieselben Namen tragen
# wie die von llama.cpp in /app – daher getrennt ablegen und per Wrapper laden
COPY --from=unified /usr/local/bin/whisper-server /opt/whisper/bin/whisper-server
COPY --from=unified /usr/local/lib/libwhisper.so* /usr/local/lib/libggml*.so* /opt/whisper/lib/
RUN printf '#!/bin/sh\nLD_LIBRARY_PATH=/opt/whisper/lib exec /opt/whisper/bin/whisper-server "$@"\n' \
> /usr/local/bin/whisper-server \
&& chmod 755 /usr/local/bin/whisper-server