# web_classify_docker **Repository Path**: makuswork/web_classify_docker ## Basic Information - **Project Name**: web_classify_docker - **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-02-04 - **Last Updated**: 2026-02-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Web Classify Docker 镜像 (CMake版本) 这是一个使用CMake构建的、完全独立的web_classify Docker镜像。 ## 项目结构 ``` web_classify_cmake_docker/ ├── CMakeLists.txt # CMake构建配置 ├── Dockerfile # Docker构建配置 ├── build.sh # 构建脚本 ├── README.md # 本文档 ├── mobilenetv2-7.onnx # MobileNetV2模型文件 ├── labels.txt # ImageNet标签文件 ├── src/ │ └── web_classify.cpp # 主应用程序源代码 ├── include/ │ ├── httplib.h # HTTP服务器库 │ ├── stb_image.h # 图像加载库 │ ├── stb_image_resize.h # 图像缩放库 │ └── stb_image_write.h # 图像保存库 └── onnxruntime/ ├── include/ # ONNX Runtime头文件 └── lib/ # ONNX Runtime库文件 ``` ## 构建要求 - Docker - CMake 3.18+ - GCC/G++ 支持 C++17 ## 构建镜像 ```bash # 给构建脚本执行权限 chmod +x build.sh # 构建Docker镜像 ./build.sh ``` ## 运行镜像 ### 远程模式(默认) ```bash docker run -p 8083:8083 web_classify:latest ``` 在远程模式下,应用程序会从 `http://localhost:8000/api/image` 获取图像进行分类。 ### 本地模式 ```bash # 挂载本地图像目录 docker run -p 8083:8083 -v /path/to/your/images:/images web_classify:latest --mode local --folder /images ``` ### 自定义参数 ```bash # 指定不同端口 docker run -p 9000:9000 web_classify:latest --port 9000 # 使用不同的API URL(远程模式) docker run -p 8083:8083 web_classify:latest --mode remote --url http://your-api-server:8000/api/image ``` ## 功能特点 - **CMake构建**: 使用标准的CMake构建系统,便于维护和扩展 - **完全独立**: 所有依赖都包含在镜像中,无需外部依赖 - **多模型支持**: 支持MobileNetV2(已包含)和ResNet50(如果提供resnet50.onnx文件) - **两种模式**: - 远程模式:从HTTP API获取图像 - 本地模式:从挂载的目录读取图像 - **Web界面**: 提供交互式Web界面,支持模型切换和图像浏览 - **REST API**: 提供 `/api/predict` 端点返回JSON格式的预测结果 ## 访问应用 构建并运行后,访问 `http://localhost:8083` 即可使用Web界面。 ## 技术栈 - **C++17**: 现代C++标准 - **CMake**: 跨平台构建系统 - **ONNX Runtime 1.18.0**: 高性能推理引擎 - **httplib**: 轻量级HTTP服务器库 - **stb_image**: 单头文件图像处理库 - **libcurl**: HTTP客户端库(用于远程模式) 所有依赖都已静态包含在镜像中,确保可以在任何支持Docker的环境中运行。