quanyoumi/DEPLOY.md

280 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 泉友米车友会 - 部署说明
版本: 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 控制台创建 buckethttp://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`
或联系技术支持团队。