# 第一阶段:从官方镜像中提取 llama-server 可执行文件 FROM ghcr.io/ggerganov/llama.cpp:server as llama # 第二阶段:构建你的 FastAPI 环境 FROM python:3.10-slim WORKDIR /app # 从第一阶段复制 llama-server 到当前镜像的 /usr/local/bin/ COPY --from=llama /app/llama-server /usr/local/bin/llama-server # 安装系统依赖(如果需要) RUN apt-get update && apt-get install -y \ && rm -rf /var/lib/apt/lists/* # 复制 Python 依赖文件并安装 COPY requirements.txt . RUN pip install --no-cache-dir --upgrade pip && \ pip install --no-cache-dir -r requirements.txt # 复制应用代码 COPY app.py . # 创建目录用于存放模型文件(可通过 Volume 挂载或下载) RUN mkdir -p /models # 暴露端口:llama-server 默认 8080,FastAPI 默认 7860 EXPOSE 8080 7860 # 启动脚本:先启动 llama-server(后台),再启动 uvicorn(前台) CMD sh -c "llama-server --model /models/Qwen3.5-4B-Q4_K_M.gguf --host 127.0.0.1 --port 8080 --ctx-size 4096 & \ uvicorn app:app --host 0.0.0.0 --port 7860"