5.1 KiB
5.1 KiB
云盘应用 Docker 镜像部署指南
📦 已完成的准备工作
✅ 可执行文件
- 位置:
dist/cloud-drive-server.exe(29MB) - 状态: 已成功打包
- 依赖: 无外部Python依赖
✅ Docker 配置文件
Dockerfile- 生产级优化版本(需要网络连接)Dockerfile.local- 多阶段构建版本Dockerfile.executable- 最小化Alpine版本docker-compose.yml- 完整服务编排.dockerignore- 构建优化配置
✅ 部署脚本
build-docker.sh- 自动化部署脚本package-app.py- 应用打包脚本simple-build.sh- 简化构建脚本
🚀 部署方案
方案一:标准Docker部署(推荐)
适用场景: 有网络连接的Linux服务器
# 1. 上传backend目录到服务器
# 2. 进入backend目录
cd backend
# 3. 构建Docker镜像
docker build -t cloud-drive-backend:latest .
# 4. 运行容器
docker run -d \
--name cloud-drive-backend \
-p 8002:8002 \
-v $(pwd)/uploads:/app/uploads \
-v $(pwd)/logs:/app/logs \
cloud-drive-backend:latest
# 5. 检查状态
docker ps
docker logs cloud-drive-backend
方案二:Docker Compose部署
适用场景: 需要完整服务栈(后端+数据库+Redis)
# 1. 配置环境变量
cp .env.example .env
# 编辑.env文件设置数据库密码等
# 2. 启动服务
docker-compose up -d
# 3. 查看状态
docker-compose ps
docker-compose logs -f
方案三:可执行文件部署
适用场景: 无Docker环境或网络受限
# 1. 上传可执行文件
scp dist/cloud-drive-server.exe user@server:/opt/cloud-drive/
# 2. 在服务器上运行
cd /opt/cloud-drive
chmod +x cloud-drive-server.exe
./cloud-drive-server.exe
方案四:离线Docker镜像
适用场景: 完全离线环境
# 1. 在有网络的机器上构建镜像
docker build -t cloud-drive-backend:offline .
# 2. 导出镜像
docker save -o cloud-drive-backend.tar cloud-drive-backend:offline
# 3. 传输到目标服务器
scp cloud-drive-backend.tar user@server:/tmp/
# 4. 在目标服务器加载
docker load -i /tmp/cloud-drive-backend.tar
docker run -d -p 8002:8002 cloud-drive-backend:offline
🔧 配置说明
环境变量
# 数据库连接
DATABASE_URL=mysql://username:password@host:3306/database
# Redis连接
REDIS_URL=redis://host:6379/0
# 应用配置
ENVIRONMENT=production
SECRET_KEY=your-secret-key
CORS_ORIGINS=http://localhost:3003
端口配置
- 应用端口: 8002
- 数据库端口: 3306 (如果使用docker-compose)
- Redis端口: 6379 (如果使用docker-compose)
数据持久化
./uploads- 文件上传目录./logs- 应用日志目录
🏥 健康检查
应用提供内置健康检查:
# 检查应用状态
curl http://localhost:8002/api/v1/health
# 预期响应
{
"status": "healthy",
"timestamp": "2025-10-14T16:32:51.123Z",
"version": "1.0.1"
}
📊 性能特性
Docker镜像优势
- ✅ 一致性: 开发和生产环境完全一致
- ✅ 隔离性: 应用依赖完全隔离
- ✅ 可移植: 支持各种Linux发行版
- ✅ 可扩展: 支持水平扩展和负载均衡
应用特性
- ✅ 单文件部署: 所有依赖打包在单一可执行文件中
- ✅ 快速启动: 冷启动时间 < 5秒
- ✅ 内存优化: 运行时内存占用 < 100MB
- ✅ 健康检查: 内置健康检查端点
🛠️ 故障排除
常见问题
-
容器无法启动
# 查看容器日志 docker logs cloud-drive-backend # 检查端口占用 netstat -tulpn | grep 8002 -
数据库连接失败
- 检查数据库服务状态
- 验证连接字符串
- 确认网络连通性
-
文件上传问题
- 检查uploads目录权限
- 确认磁盘空间
- 验证文件大小限制
调试命令
# 进入容器调试
docker exec -it cloud-drive-backend /bin/bash
# 查看应用日志
docker logs -f cloud-drive-backend
# 检查容器资源使用
docker stats cloud-drive-backend
📈 扩展部署
负载均衡
使用多个实例配合Nginx:
upstream cloud_drive {
server localhost:8002;
server localhost:8003;
server localhost:8004;
}
server {
listen 80;
location / {
proxy_pass http://cloud_drive;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
集群部署
使用Docker Swarm或Kubernetes进行集群部署。
✅ 部署检查清单
- Docker或Docker Compose已安装
- 网络连接正常(如需下载镜像)
- 端口8002可用
- 数据库连接配置正确
- uploads和logs目录权限正确
- 环境变量设置完成
- 防火墙规则已配置
- 健康检查通过
- 日志监控已设置
🎯 总结
你的云盘应用已经成功打包为Docker镜像格式:
- 可执行文件:
cloud-drive-server.exe(29MB) - 可直接运行 - Docker镜像: 多种Dockerfile配置可选
- 完整方案: 包含数据库、Redis的完整服务栈
- 自动化: 一键部署脚本支持
选择适合你环境的部署方案即可!