This commit is contained in:
2026-06-16 17:56:05 +08:00
parent 7a8bf3b5f9
commit 0196c3d877
+12 -7
View File
@@ -286,18 +286,23 @@ COPY scripts/cache_warmer.py /opt/scripts/cache_warmer.py
# ===========================================================================
RUN set -ex && \
export http_proxy=${GIT_PROXY} https_proxy=${GIT_PROXY} && \
cd /opt/vllm && ${VENV}/bin/pip install -e . --no-build-isolation && \
${VENV}/bin/pip install regex && \
# 先安装 vllm 的全部 Python 运行时依赖(--no-build-isolation 不自动装)
# 跳过 setuptools 版本约束(与 PyTorch ROCm 构建工具链冲突)
cd /opt/vllm && \
grep -v 'setuptools' requirements/common.txt > /tmp/vllm_deps.txt && \
${VENV}/bin/pip install -r /tmp/vllm_deps.txt && \
${VENV}/bin/pip install -e . --no-build-isolation && \
${VENV}/bin/python -c "import torch; v=torch.__version__; assert 'rocm' in v, f'PyTorch overwritten: {v}'; print('PyTorch OK:', v)" && \
${VENV}/bin/pip uninstall -y triton triton-rocm 2>/dev/null; \
${VENV}/bin/pip install --force-reinstall \
torch==2.11.0+rocm7.2 torchvision pytorch-triton-rocm \
--index-url ${TORCH_INDEX} && \
${VENV}/bin/python -c "import vllm; print('vllm import OK:', vllm.__version__)" && \
# 深度验证 vllm(确保 AsyncEngineArgs、AsyncLLM 等关键模块可导入,缺包直接构建失败)
${VENV}/bin/python -c "from vllm.engine.arg_utils import AsyncEngineArgs; from vllm.v1.engine.async_llm import AsyncLLM; print('vllm deep import OK:', __import__('vllm').__version__)" && \
# 确保 mineru-api 子进程不依赖 PYTHONPATH 也能导入 vllm
echo "/opt/vllm" > ${VENV}/lib/python${PYTHON_VER}/site-packages/vllm.pth && \
# 锁定所有 ROCm 关键包版本,防止 mineru 安装时覆盖
${VENV}/bin/pip freeze | grep -iE "^(torch|vllm|triton|pytorch.triton|setuptools|torchvision|flash.attn|aiter)" >> ${VENV}/torch-constraint.txt && \
# 锁定 ROCm 关键包版本(不含 setuptools,避免与 vllm/mineru 依赖冲突)
${VENV}/bin/pip freeze | grep -iE "^(torch|vllm|triton|pytorch.triton|torchvision|flash.attn|aiter)" >> ${VENV}/torch-constraint.txt && \
rm -rf /opt/vllm_build
# ===========================================================================
@@ -306,14 +311,14 @@ RUN set -ex && \
RUN set -ex && \
export http_proxy=${GIT_PROXY} https_proxy=${GIT_PROXY} && \
${VENV}/bin/pip install 'mineru[core]' click gradio httpx cbor2 && \
${VENV}/bin/python -c "import torch; import vllm; import mineru; import click; import gradio; import httpx; import cbor2; print('MinerU + Gradio + httpx + cbor2 imports OK')" && \
${VENV}/bin/python -c "import torch; from vllm.engine.arg_utils import AsyncEngineArgs; import mineru; import click; import gradio; import httpx; import cbor2; print('MinerU + Gradio + vllm deep + httpx + cbor2 imports OK')" && \
${VENV}/bin/mineru-gradio --help >/dev/null
# ===========================================================================
# 阶段 10:入口与最终验证
# ===========================================================================
RUN echo 'source /opt/mineru_venv/bin/activate' >> /etc/bash.bashrc && \
${VENV}/bin/python -c "import torch; import vllm; import mineru; import gradio; import mineru.cli.gradio_app; print('MinerU ROCm Docker Image Ready'); print(f'PyTorch {torch.__version__} OK')"
${VENV}/bin/python -c "import torch; from vllm.engine.arg_utils import AsyncEngineArgs; import mineru; import gradio; import mineru.cli.gradio_app; print('MinerU ROCm Docker Image Ready'); print(f'PyTorch {torch.__version__} OK')"
ENTRYPOINT ["/opt/entrypoint.sh"]
CMD ["bash"]