x
This commit is contained in:
@@ -163,7 +163,6 @@ cp env.example .env
|
||||
# 方式一:docker build(直接指定 ARCH)
|
||||
docker build \
|
||||
--build-arg ARCH=gfx1201 \
|
||||
--build-arg GIT_PROXY= \
|
||||
-t mineru-rocm:7.2.1 \
|
||||
-f Dockerfile .
|
||||
|
||||
@@ -187,7 +186,6 @@ docker compose build
|
||||
| `PYTHON_VER` | `3.12` | Python 版本 |
|
||||
| `VENV` | `/opt/mineru_venv` | 虚拟环境路径 |
|
||||
| `TORCH_INDEX` | `https://download.pytorch.org/whl/rocm7.2` | PyTorch wheel 源 |
|
||||
| `GIT_PROXY` | 空 | 仅构建时访问 GitHub 用;例如 `http://host.docker.internal:8118` |
|
||||
|
||||
---
|
||||
|
||||
@@ -408,61 +406,10 @@ docker compose build --no-cache gradio
|
||||
docker compose up -d --force-recreate
|
||||
```
|
||||
|
||||
**Q: 任务失败并提示 `Please install vllm to use the vllm-async-engine backend`**
|
||||
|
||||
这通常不是简单的“没安装 vllm”,而是任务进程里 `import vllm` 或 `from vllm.platforms import current_platform` 失败,MinerU 将真实异常包装成了这句提示。先在容器内直接诊断:
|
||||
|
||||
```bash
|
||||
docker compose exec gradio bash -lc '/opt/mineru_venv/bin/python - <<"PY"
|
||||
import traceback
|
||||
try:
|
||||
import torch
|
||||
import vllm
|
||||
from vllm.platforms import current_platform
|
||||
print("torch:", torch.__version__, "hip:", torch.version.hip)
|
||||
print("vllm:", vllm.__version__)
|
||||
print("platform:", type(current_platform).__name__, "is_rocm:", current_platform.is_rocm())
|
||||
except Exception:
|
||||
traceback.print_exc()
|
||||
raise
|
||||
PY'
|
||||
```
|
||||
|
||||
当前入口脚本会在服务启动前执行同样的 vLLM 导入验证;如果验证失败,容器会直接退出并在 `docker compose logs gradio` 中显示真实 traceback,而不是等任务执行时才报泛化错误。
|
||||
|
||||
如果日志明确显示 `ModuleNotFoundError: No module named 'vllm'`,常见原因是 vLLM 分发元数据不可见,但 `/opt/vllm` 源码仍在。当前镜像已通过 `PYTHONPATH=/opt/vllm` 和入口脚本兜底保证可导入,避免 editable 安装触发 `pyproject.toml` 元数据校验失败。
|
||||
|
||||
```bash
|
||||
export PYTHONPATH=/opt/vllm:${PYTHONPATH}
|
||||
/opt/mineru_venv/bin/python -c "import vllm; print(vllm.__version__)"
|
||||
```
|
||||
|
||||
入口脚本也会在启动时自动尝试这个修复。你也可以在旧容器里手动验证/修复一次:
|
||||
|
||||
```bash
|
||||
docker compose exec gradio bash -lc 'export PYTHONPATH=/opt/vllm:${PYTHONPATH}; /opt/mineru_venv/bin/python -c "import vllm; print(vllm.__version__)"'
|
||||
docker compose restart gradio
|
||||
```
|
||||
|
||||
**Q: 构建时 `ninja` 被 kill(exit 137)**
|
||||
|
||||
内存不足。将 Dockerfile 中 `ninja -j4` 改为 `ninja -j2` 或 `ninja -j1`,或给 Docker 分配更多内存。
|
||||
|
||||
**Q: 构建在 CMake 下载阶段失败(`wget/curl exit code 4`)**
|
||||
|
||||
这通常是构建容器无法访问 GitHub,或把 `GIT_PROXY` 设成了容器内不可达地址(例如 `127.0.0.1:8118` 在多数 Docker 场景下指向容器自己,不是宿主机代理)。建议:
|
||||
|
||||
1. 不需要代理时,显式传空:`--build-arg GIT_PROXY=`
|
||||
2. 需要宿主机代理时,优先用:`http://host.docker.internal:8118`
|
||||
3. 先单独测试下载连通性,再完整构建
|
||||
|
||||
```bash
|
||||
docker build --build-arg GIT_PROXY= -t mineru-rocm:7.2.1 -f Dockerfile .
|
||||
|
||||
# 或(宿主机代理)
|
||||
docker build --build-arg GIT_PROXY=http://host.docker.internal:8118 -t mineru-rocm:7.2.1 -f Dockerfile .
|
||||
```
|
||||
|
||||
**Q: 构建时 cmake 报 `Failed to find ROCm root directory`**
|
||||
|
||||
`/opt/rocm/bin` 不在 PATH 中。检查 Dockerfile 中 `ENV PATH` 是否正确设置。
|
||||
|
||||
Reference in New Issue
Block a user