nyasukun's picture
Update Dockerfile
04086ea verified
Raw
History Blame Contribute Delete
2.34 kB
# 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"]