Install Mesa/GLVND GLES/EGL runtime libraries and verify mediapipe import at image build time so headless doctor pose inference no longer fails on libGLESv2.so.2. Co-authored-by: Cursor <cursoragent@cursor.com>
2.6 KiB
2.6 KiB
Docker Compose 部署(NVIDIA GPU)
本文说明在 NVIDIA GPU 服务器上通过 Docker Compose 部署全套后端(FastAPI + PostgreSQL + MinIO),以及 Demo 客户端、语音确认页的手动启动方式。
仓库结构
operation-room-monitor/
backend/ # API + DB + MinIO(docker compose)
clients/ # 独立前端(手动启动)
docs/ # 文档
架构
| 组件 | 部署方式 | 默认端口 |
|---|---|---|
| API + PostgreSQL + MinIO | cd backend && docker compose up -d --build |
38080 / 45432 / 19000 |
| Demo 客户端 | clients/demo-client/start.sh |
38081 |
| 语音确认页 | clients/voice-confirmation/start.sh |
8080 |
一、前置条件
- Docker Compose V2、NVIDIA 驱动、NVIDIA Container Toolkit
- 复制
backend/.env.example为backend/.env并填写 - 算法子进程包:
backend/algorithm_subprocesses/5.15/(含main.py与weights/;镜像构建时会COPY进容器,勿在.dockerignore中整目录排除) - 标注视频中文字体:镜像内已安装
fonts-noto-cjk、fonts-wqy-microhei(供visualize_result_video.py绘制耗材标签) - 医生识别(MediaPipe Pose):镜像内已安装
libgles2、libegl1、libegl-mesa0、libglx-mesa0、libgl1-mesa-dri等 Mesa/GLVND 库;构建阶段会import mediapipe校验libGLESv2.so.2可用。子进程强制 CPU delegate。若仍见该错误,请docker compose build --no-cache api后重启(勿沿用旧 tarball 镜像) - 可选备用权重:
backend/app/resources/actionformer_epoch_045.pth.tar
二、启动后端
cd backend
docker compose up -d --build
健康检查:
curl -sf http://127.0.0.1:38080/health
GPU 验证:
docker compose exec api python -c "import torch; print(torch.cuda.is_available(), torch.cuda.get_device_name(0))"
停止 / 重置:
docker compose down
docker compose down -v # 删除 PostgreSQL / MinIO 卷
三、手动启动客户端
cd clients/demo-client && ./start.sh
cd clients/voice-confirmation && ./start.sh
浏览器 Base URL 填 http://<GPU服务器IP>:38080。