Spaces:
Sleeping
Sleeping
| # syntax=docker/dockerfile:1 | |
| ARG CUDA_VERSION=12.8.1 | |
| FROM nvidia/cuda:${CUDA_VERSION}-devel-ubuntu24.04 AS builder | |
| ARG LLAMA_CPP_COMMIT=04d6828b2b555ef300bae8096663c6e675afdd47 | |
| ENV DEBIAN_FRONTEND=noninteractive | |
| ENV CC=gcc-14 | |
| ENV CXX=g++-14 | |
| ENV CUDAHOSTCXX=g++-14 | |
| RUN apt-get update && \ | |
| apt-get install -y --no-install-recommends \ | |
| build-essential \ | |
| ca-certificates \ | |
| cmake \ | |
| g++-14 \ | |
| gcc-14 \ | |
| git \ | |
| libgomp1 \ | |
| libssl-dev && \ | |
| rm -rf /var/lib/apt/lists/* | |
| RUN git init /src && \ | |
| git -C /src remote add origin https://github.com/pwilkin/llama.cpp.git && \ | |
| git -C /src fetch --depth=1 origin "${LLAMA_CPP_COMMIT}" && \ | |
| git -C /src checkout --detach FETCH_HEAD && \ | |
| test "$(git -C /src rev-parse HEAD)" = "${LLAMA_CPP_COMMIT}" | |
| RUN cmake -S /src -B /src/build \ | |
| -DCMAKE_BUILD_TYPE=Release \ | |
| -DCMAKE_CUDA_ARCHITECTURES=90 \ | |
| -DCMAKE_EXE_LINKER_FLAGS="-Wl,--allow-shlib-undefined" \ | |
| -DGGML_BACKEND_DL=ON \ | |
| -DGGML_CPU_ALL_VARIANTS=OFF \ | |
| -DGGML_CUDA=ON \ | |
| -DGGML_NATIVE=OFF \ | |
| -DLLAMA_BUILD_TESTS=OFF \ | |
| -DLLAMA_BUILD_SERVER=ON \ | |
| -DLLAMA_BUILD_UI=OFF \ | |
| -DLLAMA_USE_PREBUILT_UI=OFF \ | |
| -DLLAMA_BUILD_APP=OFF \ | |
| -DLLAMA_BUILD_EXAMPLES=OFF \ | |
| -DLLAMA_BUILD_TOOLS=ON && \ | |
| cmake --build /src/build \ | |
| --config Release \ | |
| --target llama-cli \ | |
| --parallel 2 | |
| FROM nvidia/cuda:${CUDA_VERSION}-runtime-ubuntu24.04 | |
| ENV DEBIAN_FRONTEND=noninteractive | |
| RUN apt-get update && \ | |
| apt-get install -y --no-install-recommends \ | |
| ca-certificates \ | |
| coreutils \ | |
| libgomp1 \ | |
| libssl3t64 \ | |
| libstdc++6 \ | |
| python3 \ | |
| python3-venv && \ | |
| python3 -m venv /opt/hf && \ | |
| /opt/hf/bin/pip install --no-cache-dir \ | |
| "huggingface_hub==1.26.0" && \ | |
| rm -rf /var/lib/apt/lists/* | |
| COPY --from=builder /src/build/bin/ /app/ | |
| ENV PATH="/opt/hf/bin:/app:${PATH}" | |
| ENV LD_LIBRARY_PATH="/app:/usr/local/nvidia/lib:/usr/local/nvidia/lib64:/usr/local/cuda/lib64" | |
| RUN mkdir -p /health && \ | |
| printf "Kimi K3 llama.cpp runtime is ready.\n" > /health/index.html | |
| # Spaceを開いたときのhealth server。 | |
| # Jobsからbashを指定すると、このCMDは上書きされる。 | |
| CMD ["/opt/hf/bin/python", "-m", "http.server", "7860", "--directory", "/health"] |