# llama-cpp-turboquant → llama-server (CUDA 13). # Build context: root of https://github.com/TheTom/llama-cpp-turboquant # docker build -f docker/server-cuda13.Dockerfile -t llama-turboquant:server-cuda13 ../llama-cpp-turboquant # # Для Blackwell (RTX 50xx, sm_120). Toolkit 13.1.x — под драйвер с nvidia-smi CUDA 13.1. # Только 120a-real: быстрее сборка, FP4 tensor cores; не для карт старше Blackwell. ARG UBUNTU_VERSION=24.04 ARG CUDA_VERSION=13.1.2 ARG GCC_VERSION=14 ARG BASE_CUDA_DEV_CONTAINER=docker.io/nvidia/cuda:${CUDA_VERSION}-devel-ubuntu${UBUNTU_VERSION} ARG BASE_CUDA_RUN_CONTAINER=docker.io/nvidia/cuda:${CUDA_VERSION}-runtime-ubuntu${UBUNTU_VERSION} ARG BUILD_DATE=N/A ARG APP_VERSION=N/A ARG APP_REVISION=N/A ARG NODE_VERSION=24 FROM docker.io/node:$NODE_VERSION AS web ARG APP_VERSION WORKDIR /app/tools/ui COPY tools/ui/package.json tools/ui/package-lock.json ./ RUN npm ci COPY tools/ui/ ./ RUN LLAMA_BUILD_NUMBER="$APP_VERSION" npm run build FROM ${BASE_CUDA_DEV_CONTAINER} AS build ARG GCC_VERSION # 120 → CMake подменит на 120a; явно 120a-real под Blackwell (не forwards-compatible). ARG CUDA_DOCKER_ARCH=120a-real RUN apt-get update && \ apt-get install -y gcc-${GCC_VERSION} g++-${GCC_VERSION} build-essential cmake python3 python3-pip git libssl-dev libgomp1 ENV CC=gcc-${GCC_VERSION} CXX=g++-${GCC_VERSION} CUDAHOSTCXX=g++-${GCC_VERSION} WORKDIR /app COPY . . COPY --from=web /app/tools/ui/dist tools/ui/dist RUN if [ "${CUDA_DOCKER_ARCH}" != "default" ]; then \ export CMAKE_ARGS="-DCMAKE_CUDA_ARCHITECTURES=${CUDA_DOCKER_ARCH}"; \ fi && \ cmake -B build -DGGML_NATIVE=OFF -DGGML_CUDA=ON -DGGML_BACKEND_DL=ON -DGGML_CPU_ALL_VARIANTS=ON -DLLAMA_BUILD_TESTS=OFF ${CMAKE_ARGS} -DCMAKE_EXE_LINKER_FLAGS=-Wl,--allow-shlib-undefined . && \ cmake --build build --config Release -j"$(nproc)" --target llama-server RUN mkdir -p /app/lib && \ find build -name "*.so*" -exec cp -P {} /app/lib \; RUN mkdir -p /app/full \ && cp build/bin/llama-server /app/full/ FROM ${BASE_CUDA_RUN_CONTAINER} AS server ARG BUILD_DATE=N/A ARG APP_VERSION=N/A ARG APP_REVISION=N/A LABEL org.opencontainers.image.created=$BUILD_DATE \ org.opencontainers.image.version=$APP_VERSION \ org.opencontainers.image.revision=$APP_REVISION \ org.opencontainers.image.title="llama-cpp-turboquant" \ org.opencontainers.image.description="llama-server with TurboQuant KV (CUDA 13 / sm_120)" \ org.opencontainers.image.source="https://github.com/TheTom/llama-cpp-turboquant" RUN apt-get update \ && apt-get install -y libgomp1 curl \ && apt autoremove -y \ && apt clean -y \ && rm -rf /tmp/* /var/tmp/* \ && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \ && find /var/cache -type f -delete ENV LLAMA_ARG_HOST=0.0.0.0 COPY --from=build /app/lib/ /app COPY --from=build /app/full/llama-server /app/ WORKDIR /app HEALTHCHECK CMD [ "curl", "-f", "http://localhost:8080/health" ] ENTRYPOINT [ "/app/llama-server" ]