Files
KnowledgeBase/docker/README.md
lizhuoran 3c206e9e06 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>
2026-02-28 15:51:19 +08:00

131 lines
2.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Docker镜像构建说明
## 概述
本目录包含了Laravel知识库系统的Docker化配置文件支持构建适用于OpenEuler服务器的amd64架构镜像。
## 文件结构
```
docker/
├── build.sh # 镜像构建脚本
├── php/
│ └── php.ini # PHP配置
├── supervisor/
│ └── supervisord.conf # Supervisor配置
├── mysql/
│ └── my.cnf # MySQL配置
├── redis/
│ └── redis.conf # Redis配置
└── README.md # 本文件
```
## 镜像特性
- **基础环境**: PHP 8.2-cli + Alpine Linux
- **Web服务器**: Swoole (通过 Laravel Octane)
- **架构**: linux/amd64 (OpenEuler兼容)
- **文档转换**: Pandoc
- **进程管理**: Supervisor
- **优化**: 多阶段构建,最小化镜像大小
## 构建镜像
### 方法1: 使用构建脚本(推荐)
```bash
# 在项目根目录执行
./docker/build.sh
```
### 方法2: 手动构建
```bash
# 在项目根目录执行
docker build --platform linux/amd64 -t knowledge-base-app:latest .
```
## 运行容器
### 单独运行(测试用)
```bash
docker run -d \
--name knowledge-base \
-p 8000:8000 \
-e APP_ENV=production \
-e APP_KEY=your-app-key \
knowledge-base-app:latest
```
### 使用docker-compose推荐
请参考项目根目录的docker-compose.yml文件。
## 环境变量
主要环境变量配置:
- `APP_ENV`: 应用环境 (production/local)
- `APP_KEY`: Laravel应用密钥
- `DB_HOST`: 数据库主机
- `DB_DATABASE`: 数据库名称
- `DB_USERNAME`: 数据库用户名
- `DB_PASSWORD`: 数据库密码
- `REDIS_HOST`: Redis主机
- `MEILISEARCH_HOST`: Meilisearch主机
## 健康检查
镜像内置健康检查端点:
- HTTP检查: `http://localhost/health`
- PHP-FPM检查: `http://localhost/ping`
## 日志
日志文件位置:
- Swoole访问日志: `/var/log/supervisor/swoole_stdout.log`
- Swoole错误日志: `/var/log/supervisor/swoole_stderr.log`
- PHP错误日志: `/var/log/php_errors.log`
- Supervisor日志: `/var/log/supervisor/`
## 故障排除
### 构建失败
1. 检查Docker是否运行
2. 确保网络连接正常(需要下载依赖)
3. 检查磁盘空间是否充足
### 容器启动失败
1. 检查环境变量配置
2. 查看容器日志: `docker logs <container-name>`
3. 检查端口是否被占用
### 权限问题
确保storage和bootstrap/cache目录有正确的写权限。
## 镜像导出和导入
### 导出镜像
```bash
docker save knowledge-base-app:latest | gzip > knowledge-base-app.tar.gz
```
### 导入镜像
```bash
gunzip -c knowledge-base-app.tar.gz | docker load
```
## 安全注意事项
1. 生产环境请使用HTTPS
2. 定期更新基础镜像
3. 使用非root用户运行应用
4. 配置适当的防火墙规则