File size: 2,100 Bytes
70ab5e6 c0c0513 8746713 70ab5e6 8746713 70ab5e6 8746713 6373845 70ab5e6 8746713 70ab5e6 8746713 70ab5e6 8746713 e5c5a62 8746713 70ab5e6 8746713 70ab5e6 8746713 70ab5e6 c8141de 70ab5e6 c8141de 70ab5e6 f4f47ef 70ab5e6 8746713 70ab5e6 8746713 70ab5e6 | 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 | # 基础镜像:官方 llama.cpp server 镜像(已包含预编译的 llama 二进制)
FROM ghcr.io/ggml-org/llama.cpp:server
LABEL maintainer="your-name <your-email@example.com>"
LABEL description="CoPaw with llama.cpp support (launch directly)"
# 设置环境变量(可沿用你原有的配置)
ENV PYTHONUNBUFFERED=1 \
PORT=7860 \
HOST=0.0.0.0 \
COPAW_WORKING_DIR=/app/working \
COPAW_SECRETS_DIR=/app/working.secret \
COPAW_ACCEPT_SECURITY_NOTICE=yes \
# 模型路径(CoPaw 加载模型时使用)
MODEL_PATH=/models/Qwen3.5-4B-Q4_K_M.gguf
# 安装 Python 及编译工具(用于编译 llama-cpp-python)
RUN apt-get update && apt-get install -y --no-install-recommends \
python3 \
python3-pip \
python3-venv \
build-essential \
cmake \
curl \
jq \
&& rm -rf /var/lib/apt/lists/*
# 创建 python 软链接(方便使用 python 命令)
RUN ln -s /usr/bin/python3 /usr/bin/python
# 升级 pip 并安装 CoPaw(包含 llama.cpp 后端支持)
RUN pip3 install --no-cache-dir --upgrade pip && \
pip3 install --no-cache-dir 'copaw[llamacpp]' uvicorn fastapi
# 创建必要目录
RUN mkdir -p ${COPAW_WORKING_DIR} ${COPAW_SECRETS_DIR} /models
# 非交互式初始化 CoPaw,生成基础配置
RUN echo "yes" | copaw init --defaults
# 使用 jq 修改配置,添加本地 llama 模型(注意:provider 需根据 copaw 实际版本调整)
# 常见取值可能是 "llamacpp" 或 "llama",此处以 "llamacpp" 为例
RUN CONFIG_PATH=${COPAW_WORKING_DIR}/config.json && \
jq '.models.local_llama = {"provider":"llamacpp","model_path":"'${MODEL_PATH}'","model_name":"qwen3.5-4b"}' ${CONFIG_PATH} > ${CONFIG_PATH}.tmp && \
mv ${CONFIG_PATH}.tmp ${CONFIG_PATH} && \
jq '.model.default = "local_llama"' ${CONFIG_PATH} > ${CONFIG_PATH}.tmp && \
mv ${CONFIG_PATH}.tmp ${CONFIG_PATH}
# 暴露 CoPaw 端口
EXPOSE 7860
# 设置工作目录
WORKDIR ${COPAW_WORKING_DIR}
# 直接使用你原有的 CoPaw 启动命令(无需额外脚本)
CMD ["copaw", "app", "--host", "0.0.0.0", "--port", "7860"] |