quanyoumi/DEPLOY.md

5.0 KiB
Raw Blame History

泉友米车友会 - 部署说明

版本: 0.0.1

🚀 快速部署(推荐)

Windows 用户

# 1. 构建镜像
build.bat

# 2. 启动服务
docker-compose up -d

# 3. 初始化管理员
docker exec -it quanyoumi-app sh
node init-admin.js

Linux/Mac 用户

# 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,修改以下配置:

environment:
  - DB_PASSWORD=your_mysql_password        # 修改数据库密码
  - JWT_SECRET=your_jwt_secret_key         # 修改JWT密钥随机字符串
  - AMAP_KEY=your_amap_key                 # 填入高德地图Key

同时修改 MySQL 服务的密码:

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:

build.bat

Linux/Mac:

chmod +x build.sh
./build.sh

步骤 2: 启动服务

使用 docker-compose 启动完整环境(应用+MySQL+MinIO

docker-compose up -d

查看启动状态:

docker-compose ps

查看日志:

docker-compose logs -f app

步骤 3: 初始化数据库

数据库会自动初始化(使用 database.sql等待约 30 秒。

检查数据库是否就绪:

docker-compose logs db | grep "ready for connections"

步骤 4: 创建管理员账号

进入应用容器:

docker exec -it quanyoumi-app sh

运行初始化脚本:

node init-admin.js

按提示输入:

  • 用户名例如admin
  • 密码至少6位
  • 确认密码

退出容器:

exit

步骤 5: 访问应用

📦 镜像信息

  • 镜像名称: quanyoumi-app
  • 版本: 0.0.1
  • 基础镜像: node:18-alpine
  • 大小: 约 200MB
  • 包含内容:
    • 前端构建产物Vue3 + Vant4
    • 后端服务Node.js + Express
    • 依赖包(仅生产环境)

🔍 验证部署

1. 检查服务状态

docker-compose ps

应该看到 3 个服务都是 Up 状态:

  • quanyoumi-app
  • quanyoumi-db
  • quanyoumi-minio

2. 检查应用日志

docker-compose logs app

应该看到:

服务器运行在 http://localhost:3000
运行模式: 生产环境(前后端一体)

3. 测试访问

浏览器访问 http://localhost:3000应该能看到首页。

🛠️ 常见问题

问题 1: 端口被占用

错误信息:port is already allocated

解决方法:

# 修改 docker-compose.yml 中的端口映射
ports:
  - "3001:3000"  # 改为其他端口

问题 2: 数据库连接失败

错误信息:ECONNREFUSEDAccess 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. 检查环境变量配置是否正确

🔄 更新应用

# 1. 停止服务
docker-compose down

# 2. 拉取最新代码
git pull

# 3. 重新构建
docker-compose build --no-cache

# 4. 启动服务
docker-compose up -d

🗑️ 清理

停止服务(保留数据)

docker-compose down

完全清理(删除数据)

docker-compose down -v

删除镜像

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

或联系技术支持团队。