Files
huishou/DEPLOY.md
T
2026-07-27 14:07:26 +08:00

3.4 KiB

易分宝回收系统 Docker 部署指南

项目简介

易分宝现场回收系统是一个再生资源回收小程序,包含:

  • 后端 API 服务 (Node.js + Express + SQLite)
  • 后台管理端 (静态 HTML)
  • 小程序端 (uni-app)

快速开始

1. 确保已安装 Docker

# 检查 Docker 版本
docker --version
docker-compose --version

2. 构建并启动服务

# 进入项目目录
cd D:\Trae\huishou

# 构建并启动(前台运行)
docker-compose up --build

# 或者后台运行
docker-compose up -d --build

# 查看运行状态
docker-compose ps

# 查看日志
docker-compose logs -f backend

3. 访问服务

4. 停止服务

# 停止并移除容器
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. 数据库初始化:首次启动会自动初始化数据库并插入默认数据

故障排查

容器启动失败

# 查看详细日志
docker-compose logs backend

# 进入容器调试
docker exec -it yifenbao-backend sh

数据库问题

# 重置数据库(删除数据卷)
docker-compose down -v
docker-compose up -d

生产环境部署建议

  1. 使用 Nginx 反向代理
  2. 配置 HTTPS
  3. 使用外部数据库(如 MySQL)替代 SQLite
  4. 配置定时备份
  5. 使用 Docker Swarm 或 Kubernetes 进行编排