diff --git a/docker/README.md b/docker/README.md index a641a56..761d2c6 100644 --- a/docker/README.md +++ b/docker/README.md @@ -10,7 +10,7 @@ | 方案 | 适用场景 | |------|---------| -| **裸机部署**([MinerU本地部署教程.md](MinerU本地部署教程.md)) | 单机开发、追求极致性能 | +| **裸机部署**([MinerU本地部署教程.md](../MinerU本地部署教程.md)) | 单机开发、追求极致性能 | | **Docker 部署**(本文) | 团队共享、CI/CD、环境隔离、快速迁移 | Docker 方案的优势: @@ -191,11 +191,39 @@ docker compose build ## 4. 运行容器 -### 4.1 交互模式(调试 / 手动处理) +### 4.1 启动 WebUI / API 服务 + +当前 `docker-compose.yml` 默认会启动: + +| 服务 | 宿主机端口 | 容器内端口 | 用途 | +|------|------------|------------|------| +| `gradio` | `10002` | `7860` | WebUI 前端 | +| `router` | `8000` | `8000` | API 路由 | +| `worker0` | 未暴露 | `8001` | GPU Worker | +| `worker1` | 未暴露 | `8002` | GPU Worker | ```bash -# docker compose -docker compose run --rm mineru +docker compose up -d + +# 查看容器是否都已启动 +docker compose ps + +# WebUI 健康检查:应返回 HTML 或 HTTP 状态,而不是 Connection refused +curl -v http://localhost:10002/ + +# API router 端口 +curl -v http://localhost:8000/ +``` + +浏览器打开:`http://<宿主机IP>:10002`。 + +> 注意:直接 `docker run mineru-rocm:7.2.1` 使用的是 Dockerfile 默认 `CMD ["bash"]`,只会进入/运行 shell,不会启动 WebUI/API,也就不会监听 `10002`。如需直接 `docker run` 暴露 WebUI,必须显式传入 `mineru-gradio` 命令并映射端口。 + +### 4.2 交互模式(调试 / 手动处理) + +```bash +# docker compose(复用 worker0 的 GPU/卷配置,覆盖 command 进入 bash) +docker compose run --rm worker0 bash # 或 docker run docker run -it --rm \ @@ -220,10 +248,10 @@ python -c "import torch; print(torch.cuda.is_available(), torch.cuda.get_device_ mineru -p /data/input/example.pdf -o /data/output -b hybrid-auto-engine ``` -### 4.2 CLI 模式(一键处理) +### 4.3 CLI 模式(一键处理) ```bash -docker compose run --rm mineru \ +docker compose run --rm worker0 \ mineru -p /data/input/example.pdf -o /data/output -b hybrid-auto-engine ``` @@ -232,28 +260,16 @@ docker compose run --rm mineru \ command: mineru -p /data/input/example.pdf -o /data/output -b hybrid-auto-engine ``` -### 4.3 WebUI 模式 +### 4.4 WebUI / API 模式 -修改 `docker-compose.yml`: - -```yaml -command: mineru-gradio --server-name 0.0.0.0 --server-port 7860 -ports: - - "7860:7860" -``` +无需修改 Compose,直接启动即可: ```bash docker compose up -d -# 浏览器打开 http://<宿主机IP>:7860 ``` -### 4.4 API 模式 - -```yaml -command: mineru-api --host 0.0.0.0 --port 8000 -ports: - - "8000:8000" -``` +- WebUI:`http://<宿主机IP>:10002` +- API Router:`http://<宿主机IP>:8000` API 用法参考 [MinerU 官方文档](https://github.com/opendatalab/MinerU)。 @@ -262,7 +278,7 @@ API 用法参考 [MinerU 官方文档](https://github.com/opendatalab/MinerU)。 设置环境变量即可切换下载源: ```bash -docker compose run --rm -e MINERU_MODEL_SOURCE=modelscope mineru \ +docker compose run --rm -e MINERU_MODEL_SOURCE=modelscope worker0 \ mineru -p /data/input/example.pdf -o /data/output -b hybrid-auto-engine ``` @@ -276,10 +292,10 @@ docker compose run --rm -e MINERU_MODEL_SOURCE=modelscope mineru \ ```bash # 进入容器 -docker compose run --rm mineru +docker compose run --rm worker0 bash # 运行预热 -python /opt/cache_warmer.py --device cuda --max_side 960 --step 32 +python /opt/scripts/cache_warmer.py --device cuda --max_side 960 --step 32 ``` | 输入尺寸 | 冷启动耗时 | 预热后 | @@ -294,7 +310,7 @@ python /opt/cache_warmer.py --device cuda --max_side 960 --step 32 ## 6. 验证 ```bash -docker compose run --rm mineru python -c " +docker compose run --rm worker0 python -c " import torch from vllm.platforms import current_platform @@ -390,7 +406,7 @@ ls /dev/kfd /dev/dri/render* 切换下载源:`MINERU_MODEL_SOURCE=modelscope`。或设置代理: ```bash -docker compose run --rm -e http_proxy=http://host:port -e https_proxy=http://host:port mineru +docker compose run --rm -e http_proxy=http://host:port -e https_proxy=http://host:port worker0 bash ``` **Q: WebUI/API 端口无法访问** @@ -422,7 +438,7 @@ RUN rm -rf /opt/vllm_build /opt/vllm/.git /opt/aiter/.git /opt/flash-attention/. ### 升级 MinerU ```bash -docker compose run --rm mineru pip install --upgrade 'mineru[core]' +docker compose run --rm worker0 pip install --upgrade 'mineru[core]' # 然后重新应用 RDNA 补丁(参考 Dockerfile 阶段 9) ``` diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 6937cda..c5dfebb 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -7,7 +7,6 @@ services: # --- WebUI 前端 --- gradio: image: mineru-rocm:7.2.1 - profiles: ["gradio"] container_name: mineru-gradio stdin_open: true tty: true