- 添加 Dockerfile 与多套 docker-compose 配置(开发/生产环境) - 集成 Laravel Octane (Swoole) 提升性能 - 新增健康检查、监控脚本及部署文档 - 新增 Docker 镜像离线导入包(MySQL/Redis/Meilisearch) - 优化文档转换、预览服务及队列任务 - 添加 CreateAdminUser 命令与路由健康检查接口 - 新增 Swoole 队列兼容性测试套件 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4.8 KiB
4.8 KiB
Docker镜像打包和部署工具
本目录包含用于Docker镜像打包和OpenEuler服务器部署的完整工具集。
脚本概览
核心脚本
- export-images.sh - Docker镜像导出脚本
- compress-and-verify.sh - 镜像压缩和完整性检查脚本
- import-and-verify.sh - 镜像导入和验证脚本
- deploy-to-openeuler.sh - OpenEuler服务器部署脚本
- one-click-deploy.sh - 一键部署脚本
文档
- DEPLOYMENT_GUIDE.md - 详细部署指南
- PACKAGING_README.md - 本文件
快速开始
1. 导出镜像
# 基本导出
./docker/export-images.sh
# 导出并压缩,验证完整性
./docker/export-images.sh -c -v
# 导出到指定目录
./docker/export-images.sh -o /path/to/export -c -v
2. 压缩和验证
# 压缩现有镜像文件
./docker/compress-and-verify.sh
# 仅验证文件完整性
./docker/compress-and-verify.sh --verify-only
# 解压缩文件
./docker/compress-and-verify.sh --uncompress
3. 导入镜像
# 导入镜像文件
./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
# 全新部署
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. 一键部署
# 导出镜像
./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
典型工作流程
开发环境 → 生产环境
-
在开发环境导出镜像
./docker/export-images.sh -c -v -o ./docker-images -
传输到生产服务器
scp -r docker-images/ user@server:/tmp/ -
在生产服务器部署
sudo ./docker/deploy-to-openeuler.sh /tmp/docker-images
离线部署流程
-
准备镜像包
./docker/export-images.sh -c -v ./docker/compress-and-verify.sh -c 9 -
物理传输到目标环境
-
导入和部署
./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- 部署日志
故障排除
常见问题
-
权限错误
sudo chown -R $USER:$USER docker-images/ chmod +x docker/*.sh -
Docker未运行
sudo systemctl start docker sudo systemctl enable docker -
磁盘空间不足
docker system prune -a df -h -
网络连接问题
ping target-server ssh user@target-server
日志查看
# 查看导出日志
tail -f docker-images/export.log
# 查看部署日志
sudo tail -f /var/log/knowledge-base-deploy.log
# 查看Docker日志
docker compose logs -f
最佳实践
- 始终验证镜像完整性
- 在生产部署前进行测试
- 定期备份重要数据
- 监控系统资源使用
- 保持脚本和文档更新
支持的平台
- 源平台: Linux/macOS (开发环境)
- 目标平台: OpenEuler 20.03 LTS+
- 架构: x86_64 (amd64)
- Docker: 20.10+
- Docker Compose: 2.0+
更多详细信息请参考 DEPLOYMENT_GUIDE.md。