feat: 新增 Docker 部署支持、Swoole/Octane 集成及相关优化
- 添加 Dockerfile 与多套 docker-compose 配置(开发/生产环境) - 集成 Laravel Octane (Swoole) 提升性能 - 新增健康检查、监控脚本及部署文档 - 新增 Docker 镜像离线导入包(MySQL/Redis/Meilisearch) - 优化文档转换、预览服务及队列任务 - 添加 CreateAdminUser 命令与路由健康检查接口 - 新增 Swoole 队列兼容性测试套件 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
232
docker/PACKAGING_README.md
Normal file
232
docker/PACKAGING_README.md
Normal file
@@ -0,0 +1,232 @@
|
||||
# Docker镜像打包和部署工具
|
||||
|
||||
本目录包含用于Docker镜像打包和OpenEuler服务器部署的完整工具集。
|
||||
|
||||
## 脚本概览
|
||||
|
||||
### 核心脚本
|
||||
|
||||
1. **export-images.sh** - Docker镜像导出脚本
|
||||
2. **compress-and-verify.sh** - 镜像压缩和完整性检查脚本
|
||||
3. **import-and-verify.sh** - 镜像导入和验证脚本
|
||||
4. **deploy-to-openeuler.sh** - OpenEuler服务器部署脚本
|
||||
5. **one-click-deploy.sh** - 一键部署脚本
|
||||
|
||||
### 文档
|
||||
|
||||
- **DEPLOYMENT_GUIDE.md** - 详细部署指南
|
||||
- **PACKAGING_README.md** - 本文件
|
||||
|
||||
## 快速开始
|
||||
|
||||
### 1. 导出镜像
|
||||
|
||||
```bash
|
||||
# 基本导出
|
||||
./docker/export-images.sh
|
||||
|
||||
# 导出并压缩,验证完整性
|
||||
./docker/export-images.sh -c -v
|
||||
|
||||
# 导出到指定目录
|
||||
./docker/export-images.sh -o /path/to/export -c -v
|
||||
```
|
||||
|
||||
### 2. 压缩和验证
|
||||
|
||||
```bash
|
||||
# 压缩现有镜像文件
|
||||
./docker/compress-and-verify.sh
|
||||
|
||||
# 仅验证文件完整性
|
||||
./docker/compress-and-verify.sh --verify-only
|
||||
|
||||
# 解压缩文件
|
||||
./docker/compress-and-verify.sh --uncompress
|
||||
```
|
||||
|
||||
### 3. 导入镜像
|
||||
|
||||
```bash
|
||||
# 导入镜像文件
|
||||
./docker/import-and-verify.sh /path/to/images
|
||||
|
||||
# 强制导入并测试
|
||||
./docker/import-and-verify.sh -f --test-run
|
||||
|
||||
# 仅验证不导入
|
||||
./docker/import-and-verify.sh --verify-only
|
||||
```
|
||||
|
||||
### 4. 部署到OpenEuler
|
||||
|
||||
```bash
|
||||
# 全新部署
|
||||
sudo ./docker/deploy-to-openeuler.sh /path/to/images
|
||||
|
||||
# 更新现有部署
|
||||
sudo ./docker/deploy-to-openeuler.sh -u /path/to/images
|
||||
|
||||
# 备份并部署
|
||||
sudo ./docker/deploy-to-openeuler.sh -b /path/to/images
|
||||
```
|
||||
|
||||
### 5. 一键部署
|
||||
|
||||
```bash
|
||||
# 导出镜像
|
||||
./docker/one-click-deploy.sh export -c -v
|
||||
|
||||
# 部署到服务器
|
||||
./docker/one-click-deploy.sh deploy --server 192.168.1.100
|
||||
|
||||
# 完整流程
|
||||
./docker/one-click-deploy.sh full -c --server 192.168.1.100
|
||||
```
|
||||
|
||||
## 典型工作流程
|
||||
|
||||
### 开发环境 → 生产环境
|
||||
|
||||
1. **在开发环境导出镜像**
|
||||
```bash
|
||||
./docker/export-images.sh -c -v -o ./docker-images
|
||||
```
|
||||
|
||||
2. **传输到生产服务器**
|
||||
```bash
|
||||
scp -r docker-images/ user@server:/tmp/
|
||||
```
|
||||
|
||||
3. **在生产服务器部署**
|
||||
```bash
|
||||
sudo ./docker/deploy-to-openeuler.sh /tmp/docker-images
|
||||
```
|
||||
|
||||
### 离线部署流程
|
||||
|
||||
1. **准备镜像包**
|
||||
```bash
|
||||
./docker/export-images.sh -c -v
|
||||
./docker/compress-and-verify.sh -c 9
|
||||
```
|
||||
|
||||
2. **物理传输到目标环境**
|
||||
|
||||
3. **导入和部署**
|
||||
```bash
|
||||
./docker/import-and-verify.sh -f --test-run
|
||||
sudo ./docker/deploy-to-openeuler.sh --skip-images
|
||||
```
|
||||
|
||||
## 脚本选项说明
|
||||
|
||||
### export-images.sh 选项
|
||||
|
||||
- `-c, --compress`: 启用gzip压缩
|
||||
- `-v, --verify`: 导出后验证完整性
|
||||
- `-o, --output DIR`: 指定导出目录
|
||||
- `--custom-images`: 导出指定镜像列表
|
||||
- `--skip-build`: 跳过镜像构建
|
||||
|
||||
### compress-and-verify.sh 选项
|
||||
|
||||
- `-c, --compress-level N`: 压缩级别 (1-9)
|
||||
- `-k, --keep-original`: 保留原始文件
|
||||
- `-v, --verify-only`: 仅验证不压缩
|
||||
- `-u, --uncompress`: 解压缩文件
|
||||
- `--parallel N`: 并行处理数量
|
||||
|
||||
### import-and-verify.sh 选项
|
||||
|
||||
- `-v, --verify-only`: 仅验证不导入
|
||||
- `-f, --force`: 强制导入覆盖现有镜像
|
||||
- `-c, --check-manifest`: 检查清单文件
|
||||
- `--skip-compatibility`: 跳过兼容性检查
|
||||
- `--test-run`: 导入后运行测试
|
||||
|
||||
### deploy-to-openeuler.sh 选项
|
||||
|
||||
- `-d, --deploy-dir DIR`: 部署目录
|
||||
- `-b, --backup`: 部署前备份
|
||||
- `-u, --update`: 更新现有部署
|
||||
- `-r, --rollback`: 回滚到上一版本
|
||||
- `--skip-docker-install`: 跳过Docker安装
|
||||
- `--dry-run`: 仅显示操作不执行
|
||||
|
||||
## 生成的文件
|
||||
|
||||
### 导出过程生成
|
||||
|
||||
- `docker-images/` - 镜像文件目录
|
||||
- `images-manifest.txt` - 镜像清单文件
|
||||
- `import-images.sh` - 自动生成的导入脚本
|
||||
- `export.log` - 导出日志
|
||||
|
||||
### 部署过程生成
|
||||
|
||||
- `/opt/knowledge-base/` - 默认部署目录
|
||||
- `.env` - 环境配置文件
|
||||
- `storage/` - 持久化存储目录
|
||||
- `/var/log/knowledge-base-deploy.log` - 部署日志
|
||||
|
||||
## 故障排除
|
||||
|
||||
### 常见问题
|
||||
|
||||
1. **权限错误**
|
||||
```bash
|
||||
sudo chown -R $USER:$USER docker-images/
|
||||
chmod +x docker/*.sh
|
||||
```
|
||||
|
||||
2. **Docker未运行**
|
||||
```bash
|
||||
sudo systemctl start docker
|
||||
sudo systemctl enable docker
|
||||
```
|
||||
|
||||
3. **磁盘空间不足**
|
||||
```bash
|
||||
docker system prune -a
|
||||
df -h
|
||||
```
|
||||
|
||||
4. **网络连接问题**
|
||||
```bash
|
||||
ping target-server
|
||||
ssh user@target-server
|
||||
```
|
||||
|
||||
### 日志查看
|
||||
|
||||
```bash
|
||||
# 查看导出日志
|
||||
tail -f docker-images/export.log
|
||||
|
||||
# 查看部署日志
|
||||
sudo tail -f /var/log/knowledge-base-deploy.log
|
||||
|
||||
# 查看Docker日志
|
||||
docker compose logs -f
|
||||
```
|
||||
|
||||
## 最佳实践
|
||||
|
||||
1. **始终验证镜像完整性**
|
||||
2. **在生产部署前进行测试**
|
||||
3. **定期备份重要数据**
|
||||
4. **监控系统资源使用**
|
||||
5. **保持脚本和文档更新**
|
||||
|
||||
## 支持的平台
|
||||
|
||||
- **源平台**: Linux/macOS (开发环境)
|
||||
- **目标平台**: OpenEuler 20.03 LTS+
|
||||
- **架构**: x86_64 (amd64)
|
||||
- **Docker**: 20.10+
|
||||
- **Docker Compose**: 2.0+
|
||||
|
||||
---
|
||||
|
||||
更多详细信息请参考 `DEPLOYMENT_GUIDE.md`。
|
||||
Reference in New Issue
Block a user