# 易分宝回收系统 Docker 部署指南 ## 项目简介 易分宝现场回收系统是一个再生资源回收小程序,包含: - **后端 API 服务** (Node.js + Express + SQLite) - **后台管理端** (静态 HTML) - **小程序端** (uni-app) ## 快速开始 ### 1. 确保已安装 Docker ```bash # 检查 Docker 版本 docker --version docker-compose --version ``` ### 2. 构建并启动服务 ```bash # 进入项目目录 cd D:\Trae\huishou # 构建并启动(前台运行) docker-compose up --build # 或者后台运行 docker-compose up -d --build # 查看运行状态 docker-compose ps # 查看日志 docker-compose logs -f backend ``` ### 3. 访问服务 - **后端 API**: http://localhost:4000 - **后台管理端**: http://localhost:4001 - 用户名: `admin` - 密码: `123456` ### 4. 停止服务 ```bash # 停止并移除容器 docker-compose down # 停止并移除容器和数据卷 docker-compose down -v ``` ## 数据持久化 以下目录已配置为持久化存储: - `./server/data` - SQLite 数据库文件 - `./server/icons` - 上传的图标文件 ## 环境变量 | 变量名 | 默认值 | 说明 | |--------|--------|------| | NODE_ENV | production | 运行环境 | | PORT | 3000 | 服务端口 | ## API 接口 ### 价格管理 - `GET /api/prices` - 获取所有价格 - `POST /api/prices` - 添加价格 - `PUT /api/prices/:category` - 更新价格 - `DELETE /api/prices/:category` - 删除价格 ### 区域管理 - `GET /api/regions/cities` - 获取城市列表 - `GET /api/regions/districts/:city` - 获取区域列表 - `GET /api/regions/stations/:city/:district` - 获取回收站点列表 - `GET /api/regions/users/:station` - 获取用户列表 ### 订单管理 - `GET /api/orders` - 获取订单列表 - `POST /api/orders` - 创建订单 - `PUT /api/orders/:orderId` - 更新订单状态 ### 统计 - `GET /api/statistics` - 获取统计数据 ### 图标 - `GET /api/icons/:filename` - 获取上传的图标 ## 项目文件结构 ``` huishou/ ├── Dockerfile # Docker 镜像构建文件 ├── docker-compose.yml # Docker Compose 配置 ├── .dockerignore # Docker 构建忽略文件 ├── DEPLOY.md # 部署文档 ├── server/ # 后端服务 │ ├── server.js # 主服务器文件 │ ├── package.json # 依赖配置 │ ├── data/ # 数据库文件(持久化) │ └── icons/ # 上传图标(持久化) ├── admin/ # 后台管理端 │ └── index.html # 管理页面 └── dist/ └── build/ └── mp-weixin/ # 小程序编译产物 ``` ## 注意事项 1. **小程序端**:需要在微信开发者工具中导入 `dist/build/mp-weixin` 目录运行 2. **端口冲突**:确保 3000 端口未被占用 3. **数据库初始化**:首次启动会自动初始化数据库并插入默认数据 ## 故障排查 ### 容器启动失败 ```bash # 查看详细日志 docker-compose logs backend # 进入容器调试 docker exec -it yifenbao-backend sh ``` ### 数据库问题 ```bash # 重置数据库(删除数据卷) docker-compose down -v docker-compose up -d ``` ## 生产环境部署建议 1. 使用 Nginx 反向代理 2. 配置 HTTPS 3. 使用外部数据库(如 MySQL)替代 SQLite 4. 配置定时备份 5. 使用 Docker Swarm 或 Kubernetes 进行编排