280 lines
5.0 KiB
Markdown
280 lines
5.0 KiB
Markdown
# 泉友米车友会 - 部署说明
|
||
|
||
版本: 0.0.1
|
||
|
||
## 🚀 快速部署(推荐)
|
||
|
||
### Windows 用户
|
||
|
||
```cmd
|
||
# 1. 构建镜像
|
||
build.bat
|
||
|
||
# 2. 启动服务
|
||
docker-compose up -d
|
||
|
||
# 3. 初始化管理员
|
||
docker exec -it quanyoumi-app sh
|
||
node init-admin.js
|
||
```
|
||
|
||
### Linux/Mac 用户
|
||
|
||
```bash
|
||
# 1. 构建镜像
|
||
chmod +x build.sh
|
||
./build.sh
|
||
|
||
# 2. 启动服务
|
||
docker-compose up -d
|
||
|
||
# 3. 初始化管理员
|
||
docker exec -it quanyoumi-app sh
|
||
node init-admin.js
|
||
```
|
||
|
||
## 📝 部署前准备
|
||
|
||
### 1. 修改配置文件
|
||
|
||
编辑 `docker-compose.yml`,修改以下配置:
|
||
|
||
```yaml
|
||
environment:
|
||
- DB_PASSWORD=your_mysql_password # 修改数据库密码
|
||
- JWT_SECRET=your_jwt_secret_key # 修改JWT密钥(随机字符串)
|
||
- AMAP_KEY=your_amap_key # 填入高德地图Key
|
||
```
|
||
|
||
同时修改 MySQL 服务的密码:
|
||
|
||
```yaml
|
||
db:
|
||
environment:
|
||
- MYSQL_ROOT_PASSWORD=your_mysql_password # 与上面保持一致
|
||
```
|
||
|
||
### 2. 获取高德地图 Key
|
||
|
||
1. 访问 https://console.amap.com/
|
||
2. 注册/登录账号
|
||
3. 创建应用,选择 Web 端(JS API)
|
||
4. 复制 Key 填入配置
|
||
|
||
## 🔧 详细步骤
|
||
|
||
### 步骤 1: 构建 Docker 镜像
|
||
|
||
镜像包含前端(Vue3)和后端(Node.js),版本号 0.0.1。
|
||
|
||
**Windows:**
|
||
```cmd
|
||
build.bat
|
||
```
|
||
|
||
**Linux/Mac:**
|
||
```bash
|
||
chmod +x build.sh
|
||
./build.sh
|
||
```
|
||
|
||
### 步骤 2: 启动服务
|
||
|
||
使用 docker-compose 启动完整环境(应用+MySQL+MinIO):
|
||
|
||
```bash
|
||
docker-compose up -d
|
||
```
|
||
|
||
查看启动状态:
|
||
```bash
|
||
docker-compose ps
|
||
```
|
||
|
||
查看日志:
|
||
```bash
|
||
docker-compose logs -f app
|
||
```
|
||
|
||
### 步骤 3: 初始化数据库
|
||
|
||
数据库会自动初始化(使用 database.sql),等待约 30 秒。
|
||
|
||
检查数据库是否就绪:
|
||
```bash
|
||
docker-compose logs db | grep "ready for connections"
|
||
```
|
||
|
||
### 步骤 4: 创建管理员账号
|
||
|
||
进入应用容器:
|
||
```bash
|
||
docker exec -it quanyoumi-app sh
|
||
```
|
||
|
||
运行初始化脚本:
|
||
```bash
|
||
node init-admin.js
|
||
```
|
||
|
||
按提示输入:
|
||
- 用户名(例如:admin)
|
||
- 密码(至少6位)
|
||
- 确认密码
|
||
|
||
退出容器:
|
||
```bash
|
||
exit
|
||
```
|
||
|
||
### 步骤 5: 访问应用
|
||
|
||
- **前端页面**: http://localhost:3000
|
||
- **后台管理**: http://localhost:3000/admin/login
|
||
- **MinIO 控制台**: http://localhost:9001 (minioadmin/minioadmin)
|
||
|
||
## 📦 镜像信息
|
||
|
||
- **镜像名称**: quanyoumi-app
|
||
- **版本**: 0.0.1
|
||
- **基础镜像**: node:18-alpine
|
||
- **大小**: 约 200MB
|
||
- **包含内容**:
|
||
- 前端构建产物(Vue3 + Vant4)
|
||
- 后端服务(Node.js + Express)
|
||
- 依赖包(仅生产环境)
|
||
|
||
## 🔍 验证部署
|
||
|
||
### 1. 检查服务状态
|
||
|
||
```bash
|
||
docker-compose ps
|
||
```
|
||
|
||
应该看到 3 个服务都是 Up 状态:
|
||
- quanyoumi-app
|
||
- quanyoumi-db
|
||
- quanyoumi-minio
|
||
|
||
### 2. 检查应用日志
|
||
|
||
```bash
|
||
docker-compose logs app
|
||
```
|
||
|
||
应该看到:
|
||
```
|
||
服务器运行在 http://localhost:3000
|
||
运行模式: 生产环境(前后端一体)
|
||
```
|
||
|
||
### 3. 测试访问
|
||
|
||
浏览器访问 http://localhost:3000,应该能看到首页。
|
||
|
||
## 🛠️ 常见问题
|
||
|
||
### 问题 1: 端口被占用
|
||
|
||
错误信息:`port is already allocated`
|
||
|
||
解决方法:
|
||
```bash
|
||
# 修改 docker-compose.yml 中的端口映射
|
||
ports:
|
||
- "3001:3000" # 改为其他端口
|
||
```
|
||
|
||
### 问题 2: 数据库连接失败
|
||
|
||
错误信息:`ECONNREFUSED` 或 `Access denied`
|
||
|
||
解决方法:
|
||
1. 检查数据库是否启动:`docker-compose ps db`
|
||
2. 检查密码是否一致(app 和 db 的密码要相同)
|
||
3. 等待数据库完全启动(约 30 秒)
|
||
|
||
### 问题 3: 前端页面空白
|
||
|
||
解决方法:
|
||
1. 检查浏览器控制台是否有错误
|
||
2. 确认后端 API 是否正常:访问 http://localhost:3000/api/activities
|
||
3. 重新构建镜像:`docker-compose build --no-cache`
|
||
|
||
### 问题 4: 图片上传失败
|
||
|
||
解决方法:
|
||
1. 检查 MinIO 是否运行:`docker-compose ps minio`
|
||
2. 访问 MinIO 控制台创建 bucket:http://localhost:9001
|
||
3. 检查环境变量配置是否正确
|
||
|
||
## 🔄 更新应用
|
||
|
||
```bash
|
||
# 1. 停止服务
|
||
docker-compose down
|
||
|
||
# 2. 拉取最新代码
|
||
git pull
|
||
|
||
# 3. 重新构建
|
||
docker-compose build --no-cache
|
||
|
||
# 4. 启动服务
|
||
docker-compose up -d
|
||
```
|
||
|
||
## 🗑️ 清理
|
||
|
||
### 停止服务(保留数据)
|
||
```bash
|
||
docker-compose down
|
||
```
|
||
|
||
### 完全清理(删除数据)
|
||
```bash
|
||
docker-compose down -v
|
||
```
|
||
|
||
### 删除镜像
|
||
```bash
|
||
docker rmi quanyoumi-app:0.0.1
|
||
```
|
||
|
||
## 📊 生产环境建议
|
||
|
||
1. **使用反向代理**
|
||
- 推荐使用 Nginx 或 Caddy
|
||
- 配置 HTTPS 证书
|
||
- 设置域名
|
||
|
||
2. **修改默认密码**
|
||
- MySQL root 密码
|
||
- MinIO 访问密钥
|
||
- JWT 密钥(长随机字符串)
|
||
|
||
3. **数据备份**
|
||
- 定期备份 MySQL 数据
|
||
- 备份 MinIO 存储
|
||
- 备份上传文件
|
||
|
||
4. **监控告警**
|
||
- 配置日志收集
|
||
- 设置资源监控
|
||
- 配置告警通知
|
||
|
||
5. **安全加固**
|
||
- 限制数据库外部访问
|
||
- 使用防火墙规则
|
||
- 定期更新镜像
|
||
|
||
## 📞 技术支持
|
||
|
||
如有问题,请查看:
|
||
1. 应用日志:`docker-compose logs app`
|
||
2. 数据库日志:`docker-compose logs db`
|
||
3. MinIO 日志:`docker-compose logs minio`
|
||
|
||
或联系技术支持团队。
|