71 lines
2.0 KiB
Docker
71 lines
2.0 KiB
Docker
# Étape 1 : build de llama.cpp
|
|
FROM ubuntu:24.04 AS builder
|
|
|
|
LABEL maintainer="vous" \
|
|
description="llama.cpp + Mistral-7B-Instruct (inférence locale isolée)"
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
lsb-release \
|
|
gnupg \
|
|
ca-certificates \
|
|
build-essential \
|
|
cmake \
|
|
git \
|
|
libopenblas-dev \
|
|
pkg-config \
|
|
libvulkan-dev \
|
|
vulkan-tools \
|
|
wget
|
|
|
|
# Télécharge et installe le Vulkan SDK
|
|
RUN wget -qO - https://packages.lunarg.com/lunarg-signing-key-pub.asc | apt-key add - && \
|
|
echo "deb https://packages.lunarg.com/vulkan/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/lunarg-vulkan.list && \
|
|
apt-get update && \
|
|
apt-get install -y vulkan-sdk && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
WORKDIR /build
|
|
RUN git clone --depth 1 https://github.com/ggerganov/llama.cpp .
|
|
|
|
RUN cmake -B build \
|
|
-DLLAMA_BUILD_TESTS=OFF \
|
|
-DLLAMA_BUILD_EXAMPLES=ON \
|
|
-DGGML_BLAS=ON \
|
|
-DGGML_BLAS_VENDOR=OpenBLAS \
|
|
-DCMAKE_INSTALL_PREFIX=/install \
|
|
-DGGML_VULKAN=ON \
|
|
-DVulkan_GLSLC_EXECUTABLE=/usr/bin/glslc \
|
|
&& cmake --build build --config Release -j$(nproc) \
|
|
&& cmake --install build --prefix /install
|
|
|
|
# Étape 2 : image finale (runtime minimal)
|
|
FROM ubuntu:24.04 AS runtime
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
libopenblas0-openmp \
|
|
libgomp1 \
|
|
libvulkan1 \
|
|
mesa-vulkan-drivers \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
COPY --from=builder /install/ /usr/local/
|
|
RUN ldconfig
|
|
|
|
RUN useradd -m -u 1001 -s /bin/bash llama
|
|
USER llama
|
|
|
|
WORKDIR /home/llama
|
|
RUN mkdir -p /home/llama/models
|
|
|
|
EXPOSE 8080
|
|
|
|
CMD ["llama-server", \
|
|
"--model", "/home/llama/models/mistral-7b-instruct.gguf", \
|
|
"--host", "0.0.0.0", \
|
|
"--port", "8080", \
|
|
"-c", "4096", \
|
|
"-ngl", "33"] |