# docker-container-sop **Repository Path**: clynn_dev/docker-container-sop ## Basic Information - **Project Name**: docker-container-sop - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-23 - **Last Updated**: 2026-03-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Docker 容器视频推理管道 基于共享内存的高性能视频推理多容器管道系统。 ## 项目概述 本项目实现了一个通过 POSIX 共享内存进行高效进程间通信的视频推理管道: 1. **decoder**: RTSP 视频流解码器,使用 PyAV (FFmpeg) 解码视频并写入共享内存 2. **model-inference-test**: 基于 YOLO 的吸烟检测推理服务,从共享内存读取帧并写入检测结果 3. **reporter**: WebSocket 客户端,读取推理结果并批量上报给后端服务 4. **shm_manager**: 核心共享内存管理库,提供环形缓冲区实现 ## 系统架构 ``` ┌──────────┐ ┌──────────────────┐ ┌──────────┐ │ Decoder │────▶│ model-inference │────▶│ Reporter │ │ (RTSP) │ SHM │ -test │ SHM │ (上报) │ └──────────┘ └──────────────────┘ └──────────┘ FrameBuffer ↑ Ultralytics ResultBuffer ↑ cigarette.pt ``` ### 共享内存配置 | 组件 | 输入 SHM | 输出 SHM | |------|----------|----------| | decoder | - | `/test-shm` | | model-inference-test | `/test-shm` | `/results_default` | | reporter | `/results_default` | - | ## 快速开始 ### 使用 Docker Compose(推荐) ```bash # 启动所有服务 docker-compose up -d # 查看日志 docker-compose logs -f # 停止所有服务 docker-compose down ``` ### 单独构建和运行 各模块的详细使用说明请参考各自的 README: - [Decoder 模块](./decoder/README.md) - [Model Inference Test 模块](./model-inference-test/README.md) - [Reporter 模块](./reporter/README.md) - [Shm Manager 库](./shm_manager/README.md) ## 技术栈 - **Python**: 3.10+ - **视频解码**: PyAV (FFmpeg) - **深度学习**: Ultralytics YOLO - **共享内存**: POSIX shared memory (posix-ipc) - **配置管理**: Pydantic + YAML - **日志**: structlog - **容器化**: Docker + Docker Compose ## 重要说明 1. **IPC Namespace**: 所有容器必须使用 `--ipc=host` 或共享 IPC namespace 才能访问共享内存 2. **平台支持**: 仅支持 POSIX 兼容系统(Linux、macOS、WSL2),不支持 Windows 3. **共享内存清理**: shm_manager 提供 `with_unlink(True)` 上下文管理器用于自动清理 ## 项目结构 ``` docker-container-sop/ ├── decoder/ # RTSP 视频解码器 │ ├── decoder.py │ ├── config.yaml │ ├── Dockerfile │ └── requirements.txt ├── model-inference-test/ # YOLO 吸烟检测推理 │ ├── inference.py │ ├── config.yaml │ ├── Dockerfile │ ├── requirements.txt │ └── cigarette.pt # YOLO 模型文件 ├── reporter/ # WebSocket 上报器 │ ├── main.py │ ├── config.py │ ├── config.yaml │ ├── Dockerfile │ ├── requirements.txt │ ├── reader/ │ ├── ws/ │ ├── batching/ │ ├── cache/ │ └── reliability/ ├── shm_manager/ # 共享内存管理库 │ ├── shm_manager/ │ │ ├── core/ │ │ ├── buffer/ │ │ ├── sync/ │ │ └── utils/ │ ├── test/ │ └── setup.py ├── docker-compose.yml # Docker Compose 编排 └── README.md # 本文档 ``` ## 许可证 本项目为内部使用项目。