commit e2c6fa41a9903489485af98e50f5c81479e2de70 Author: wanglin <2281216234@qq.com> Date: Sat Oct 3 20:03:14 2026 +0800 enginex-mrv100-compat: Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..a0d0fd6 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,39 @@ +# enginex-mrv100-compat +# +# 天数智芯 智铠100(Iluvatar_mrv-100)· 文本生成 · vLLM「兼容增强」引擎。 +# +# 与 enginex-bi100-compat 同源同逻辑,只是换成 mrv-100 的基础镜像。 +# 做法照搬社区已上线引擎 zhengzhongwei/vLLM-Iluvatar_mrv-100-opt: +# **把镜像内的 vllm 二进制换成本仓 wrapper**,平台原样下发 +# `vllm serve /model --port 80 ...` 就会流经 wrapper,无需平台改任何命令。 +# +# 为什么选 mrv-100:该卡当前只有 vllm / transformers 两个框架, +# **没有任何 tokenizer/compat 类引擎**;而本人该卡 4 个失败里 2 个是 R2(模型无 +# chat_template → chat 路径 400/空输出)。该卡并发上限只有 2,补一个兼容引擎收益直接。 + +FROM harbor.4pd.io/hardcore-tech/iluvatar/llm-infer-iluvatar-mr:v0 + +LABEL org.opencontainers.image.title="enginex-mrv100-compat" \ + org.opencontainers.image.description="Iluvatar mrv-100 vLLM engine with preflight compatibility patches (R2/R3/R3b/R4/R7)" \ + com.modelhubxc.engine.target-card="Iluvatar_mrv-100" \ + com.modelhubxc.engine.framework="vllm" \ + com.modelhubxc.engine.task-type="text-generation" \ + com.modelhubxc.engine.pattern="zhengzhongwei/vLLM-Iluvatar_mrv-100-opt" + +COPY preflight.py /opt/ +COPY detect_tokenizer.py /opt/ +COPY vllm_wrapper.sh /opt/ +COPY shims_ixformer_layers.py /opt/shims_src/ + +RUN set -eux && mkdir -p /opt/shims/ixformer/contrib/vllm/layers && for d in /opt/shims/ixformer /opt/shims/ixformer/contrib /opt/shims/ixformer/contrib/vllm /opt/shims/ixformer/contrib/vllm/layers; do printf '# ModelHub XC compat shim package\n' > "$d/__init__.py"; done && cp /opt/shims_src/shims_ixformer_layers.py /opt/shims/ixformer/contrib/vllm/layers/__init__.py && rm -rf /opt/shims_src && chmod +x /opt/vllm_wrapper.sh /opt/preflight.py && python3 -c "import ast,io;[ast.parse(io.open(f,encoding='utf-8').read()) for f in ['/opt/preflight.py','/opt/detect_tokenizer.py','/opt/shims/ixformer/contrib/vllm/layers/__init__.py']]" && bash -n /opt/vllm_wrapper.sh && echo "[enginex-mrv100-compat] preflight syntax OK" + +ENV PYTHONPATH=/opt/shims:${PYTHONPATH} +ENV MODEL_DIR=/model + +# 关键一步:把 vllm 二进制换成 wrapper(真身改名 vllm_real), +# 平台下发的 `vllm serve ...` 因此流经本引擎的启动前修补。 +RUN set -eux && VLLM_BIN="$(command -v vllm || echo /usr/local/corex/lib64/python3/dist-packages/bin/vllm)" && \ + if [ ! -f "$VLLM_BIN" ]; then echo "vllm binary not found at $VLLM_BIN"; exit 1; fi && \ + mv "$VLLM_BIN" "${VLLM_BIN}_real" && \ + ln -s /opt/vllm_wrapper.sh "$VLLM_BIN" && \ + echo "[enginex-mrv100-compat] vllm -> wrapper installed"