MiniCPM5-1B / Dockerfile
Nryn215's picture
Create Dockerfile
a4cb9cc verified
Raw
History Blame Contribute Delete
1.2 kB
# Use a lightweight build environment with cmake and make installed
FROM python:3.11-slim AS builder
RUN apt-get update && apt-get install -y \
build-essential \
cmake \
git \
curl \
&& rm -rf /var/lib/apt/lists/*
# Clone and build llama.cpp server
WORKDIR /app
RUN git clone https://github.com/ggerganov/llama.cpp.git \
&& cd llama.cpp \
&& cmake -B build -DBUILD_SHARED_LIBS=OFF \
&& cmake --build build --config Release --target llama-server
# Use a clean, small final image
FROM python:3.11-slim
RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/*
WORKDIR /app
# Copy the built llama-server binary from the builder stage
COPY --from=builder /app/llama.cpp/build/bin/llama-server /app/llama-server
# Download the MiniCPM5-1B-GGUF model (using Q4_K_M for optimal speed/memory balance on CPU)
RUN curl -L -o minicpm-1b.gguf "https://huggingface.co/openbmb/MiniCPM5-1B-GGUF/resolve/main/MiniCPM5-1B-Q4_K_M.gguf"
# Expose port 7860 (Hugging Face Spaces requires your app to listen on port 7860)
EXPOSE 7860
# Add entrypoint script
COPY entrypoint.sh /app/entrypoint.sh
RUN chmod +x /app/entrypoint.sh
ENTRYPOINT ["/app/entrypoint.sh"]