- 添加 Dockerfile 与多套 docker-compose 配置(开发/生产环境) - 集成 Laravel Octane (Swoole) 提升性能 - 新增健康检查、监控脚本及部署文档 - 新增 Docker 镜像离线导入包(MySQL/Redis/Meilisearch) - 优化文档转换、预览服务及队列任务 - 添加 CreateAdminUser 命令与路由健康检查接口 - 新增 Swoole 队列兼容性测试套件 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4.7 KiB
4.7 KiB
Docker部署需求文档
介绍
本文档定义了将Laravel知识库系统Docker化部署到OpenEuler服务器的需求。系统需要支持完整的生产环境运行,包括Web应用、数据库、缓存、搜索引擎和队列处理等所有组件。
术语表
- Docker镜像: 包含应用程序及其运行环境的可执行包
- 容器编排: 使用docker-compose管理多个相关容器的技术
- 知识库系统: 基于Laravel框架的文档管理和搜索系统
- OpenEuler服务器: 目标部署环境的Linux服务器
- 生产环境: 实际运行业务的服务器环境
- 数据持久化: 确保容器重启后数据不丢失的机制
- 健康检查: 监控容器运行状态的机制
需求
需求1
用户故事: 作为系统管理员,我希望能够构建包含完整运行环境的Docker镜像,以便在OpenEuler服务器上部署知识库系统。
验收标准
- WHEN 构建Docker镜像时 THEN 系统应构建为linux/amd64架构以确保OpenEuler兼容性
- WHEN 构建Docker镜像时 THEN 系统应包含PHP 8.2运行环境和所有必需的扩展
- WHEN 构建Docker镜像时 THEN 系统应包含Composer依赖和NPM构建产物
- WHEN 构建Docker镜像时 THEN 系统应包含Nginx Web服务器配置
- WHEN 构建Docker镜像时 THEN 系统应包含文档转换工具Pandoc
- WHEN 构建Docker镜像时 THEN 系统应优化镜像大小并使用多阶段构建
需求2
用户故事: 作为系统管理员,我希望通过docker-compose编排所有服务,以便一键启动完整的应用栈。
验收标准
- WHEN 启动服务时 THEN 系统应启动MySQL数据库服务并配置持久化存储
- WHEN 启动服务时 THEN 系统应启动Redis缓存服务并配置内存限制
- WHEN 启动服务时 THEN 系统应启动Meilisearch搜索引擎并配置数据持久化
- WHEN 启动服务时 THEN 系统应启动Laravel应用容器并连接所有依赖服务
- WHEN 启动服务时 THEN 系统应启动队列处理容器处理后台任务
需求3
用户故事: 作为系统管理员,我希望配置数据持久化和目录映射,以便数据在容器重启后不丢失。
验收标准
- WHEN 配置存储时 THEN 系统应将项目代码目录映射到容器内部
- WHEN 配置存储时 THEN 系统应将上传文档存储目录持久化到宿主机
- WHEN 配置存储时 THEN 系统应将数据库数据目录持久化到宿主机
- WHEN 配置存储时 THEN 系统应将搜索引擎数据目录持久化到宿主机
- WHEN 配置存储时 THEN 系统应将日志目录映射到宿主机便于查看
需求4
用户故事: 作为系统管理员,我希望配置环境变量和网络,以便服务间能够正确通信。
验收标准
- WHEN 配置网络时 THEN 系统应创建专用Docker网络供服务间通信
- WHEN 配置环境时 THEN 系统应设置数据库连接参数指向MySQL容器
- WHEN 配置环境时 THEN 系统应设置Redis连接参数指向Redis容器
- WHEN 配置环境时 THEN 系统应设置Meilisearch连接参数指向搜索容器
- WHEN 配置环境时 THEN 系统应配置应用密钥和调试模式
需求5
用户故事: 作为系统管理员,我希望实现健康检查和自动重启,以便确保服务的高可用性。
验收标准
- WHEN 服务运行时 THEN 系统应对Web应用进行HTTP健康检查
- WHEN 服务运行时 THEN 系统应对数据库进行连接健康检查
- WHEN 服务运行时 THEN 系统应对Redis进行连接健康检查
- WHEN 服务运行时 THEN 系统应对Meilisearch进行API健康检查
- WHEN 服务异常时 THEN 系统应自动重启失败的容器
需求6
用户故事: 作为系统管理员,我希望能够导出和导入Docker镜像,以便在离线环境中部署。
验收标准
- WHEN 导出镜像时 THEN 系统应将构建好的amd64架构镜像打包为tar文件
- WHEN 导入镜像时 THEN 系统应能够从tar文件加载镜像到OpenEuler服务器的Docker
- WHEN 传输镜像时 THEN 系统应支持压缩以减少文件大小
- WHEN 验证镜像时 THEN 系统应提供镜像完整性和架构兼容性检查方法
- WHEN 部署镜像时 THEN 系统应提供详细的OpenEuler部署文档和脚本
需求7
用户故事: 作为开发人员,我希望有开发环境的Docker配置,以便本地开发和测试。
验收标准
- WHEN 开发环境启动时 THEN 系统应启用代码热重载功能
- WHEN 开发环境启动时 THEN 系统应启用调试模式和详细日志
- WHEN 开发环境启动时 THEN 系统应映射源代码目录支持实时编辑
- WHEN 开发环境启动时 THEN 系统应暴露所有必要的端口供调试
- WHEN 开发环境启动时 THEN 系统应包含开发工具和测试数据