From 90d490c49e67e881aa76b02e6b45094bbb578607 Mon Sep 17 00:00:00 2001 From: chenjw28 <792430652@qq.com> Date: Wed, 17 Jun 2026 14:13:37 +0800 Subject: [PATCH] x --- docker/Dockerfile | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 2d733b0..9e1c4c6 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -286,23 +286,25 @@ COPY scripts/cache_warmer.py /opt/scripts/cache_warmer.py # =========================================================================== RUN set -ex && \ export http_proxy=${GIT_PROXY} https_proxy=${GIT_PROXY} && \ - # 1) 安装 vllm 运行时依赖,但过滤 torch/triton/setuptools(这些必须走 ROCm 专用源/版本) + # 1) 注册 vllm 源码包,不让 pip 解析 torch 依赖 cd /opt/vllm && \ - grep -vE '^(torch|torchvision|torchaudio|triton|triton-rocm|pytorch-triton|setuptools)' requirements/common.txt > /tmp/vllm_deps.txt && \ - ${VENV}/bin/pip install -r /tmp/vllm_deps.txt && \ - # 2) 注册 vllm 源码包,不让 pip 解析 torch 依赖(否则会从普通 PyPI 找 triton-rocm 失败) ${VENV}/bin/pip install -e . --no-build-isolation --no-deps && \ - # 3) 强制复查 PyTorch(vllm 依赖可能拉成 CUDA 版 torch) + # 2) 安装 ROCm PyTorch(后续依赖解析用 ROCm 源补齐 triton-rocm) (${VENV}/bin/pip uninstall -y triton triton-rocm 2>/dev/null || true) && \ ${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 torch; v=torch.__version__; assert 'rocm' in v, f'PyTorch overwritten: {v}'; print('PyTorch OK:', v)" && \ - # 4) 深度验证 vllm(确保 AsyncEngineArgs、AsyncLLM 等关键模块可导入,缺包直接构建失败) + # 3) 安装 vllm 运行时依赖;额外加入 ROCm PyTorch 源,避免传递依赖解析 triton-rocm 失败 + grep -vE '^(torch|torchvision|torchaudio|triton|triton-rocm|pytorch-triton|setuptools)' requirements/common.txt > /tmp/vllm_deps.txt && \ + ${VENV}/bin/pip install -r /tmp/vllm_deps.txt --extra-index-url ${TORCH_INDEX} && \ + # 4) 再次确认 PyTorch 仍是 ROCm 版 + ${VENV}/bin/python -c "import torch; v=torch.__version__; assert 'rocm' in v, f'PyTorch overwritten after vllm deps: {v}'; print('PyTorch still OK:', v)" && \ + # 5) 深度验证 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__)" && \ - # 5) 确保 mineru-api 子进程不依赖 PYTHONPATH 也能导入 vllm + # 6) 确保 mineru-api 子进程不依赖 PYTHONPATH 也能导入 vllm echo "/opt/vllm" > ${VENV}/lib/python${PYTHON_VER}/site-packages/vllm.pth && \ - # 6) 锁定 ROCm 关键包版本(不含 setuptools,避免与 vllm/mineru 依赖冲突) + # 7) 锁定 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