Spaces:
Sleeping
Sleeping
File size: 2,337 Bytes
f4ff6d8 aaaae3b f4ff6d8 aaaae3b 04086ea aaaae3b 04086ea aaaae3b f4ff6d8 04086ea f4ff6d8 d286965 f4ff6d8 d286965 f4ff6d8 d286965 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | # 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"] |