FROM python:3.11-slim AS runtime ENV DEBIAN_FRONTEND=noninteractive \ PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 \ PORT=7860 \ GRADIO_SERVER_NAME=0.0.0.0 RUN apt-get update \ && apt-get install -y --no-install-recommends ca-certificates libcurl4 libgomp1 libstdc++6 git \ && rm -rf /var/lib/apt/lists/* RUN echo '#!/bin/sh' > /usr/local/bin/llama-server && \ echo 'python -m llama_cpp.server "$@"' >> /usr/local/bin/llama-server && \ chmod +x /usr/local/bin/llama-server RUN echo '#!/bin/sh' > /usr/local/bin/llama-cli && \ echo 'python -m llama_cpp.cli "$@"' >> /usr/local/bin/llama-cli && \ chmod +x /usr/local/bin/llama-cli RUN useradd -m -u 1000 user USER user ENV PATH="/home/user/.local/bin:$PATH" WORKDIR /app COPY --chown=user requirements.txt ./requirements.txt RUN python -m pip install --no-cache-dir --upgrade pip setuptools wheel \ && python -m pip install --no-cache-dir -r requirements.txt COPY --chown=user . /app ARG HF_TOKEN ENV HF_TOKEN=${HF_TOKEN} RUN pip install huggingface_hub hf_transfer USER root RUN mkdir -p /data && chown -R user:user /data USER user RUN python scripts/download_gguf.py openbmb/MiniCPM5-1B-GGUF MiniCPM5-1B-Q4_K_M.gguf models/MiniCPM5-1B-Q4_K_M.gguf EXPOSE 7860 8080 CMD ["python", "app.py"]