147 lines
3.4 KiB
Markdown
147 lines
3.4 KiB
Markdown
# 易分宝回收系统 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 进行编排
|