Files
KnowledgeBase/docker/ENVIRONMENT_SETUP.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

288 lines
5.3 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部署环境包括生产环境和开发环境的配置。
## 快速开始
### 1. 自动配置(推荐)
使用自动配置脚本快速设置环境:
```bash
# 生产环境配置
./docker/setup-env.sh -e production
# 开发环境配置
./docker/setup-env.sh -e development
# 交互式配置
./docker/setup-env.sh -i
```
### 2. 手动配置
如果需要手动配置,请按照以下步骤:
#### 生产环境
1. 复制环境模板:
```bash
cp .env.production .env
```
2. 编辑 `.env` 文件,修改以下关键配置:
```bash
APP_KEY=base64:your-generated-key-here
DB_PASSWORD=your-secure-database-password
MEILISEARCH_KEY=your-meilisearch-master-key
APP_URL=http://your-domain.com
```
3. 生成应用密钥:
```bash
php artisan key:generate
```
#### 开发环境
1. 复制开发环境模板:
```bash
cp .env.development .env
```
2. 编辑配置(开发环境可以使用默认值)
## 配置验证
### 验证环境变量
```bash
# 验证当前环境配置
./docker/validate-env.sh
```
### 验证Docker配置
```bash
# 验证生产环境配置
docker-compose config
# 验证开发环境配置
docker-compose -f docker-compose.dev.yml config
```
## 启动服务
### 生产环境
```bash
# 启动所有服务
docker-compose up -d
# 查看服务状态
docker-compose ps
# 查看日志
docker-compose logs -f
```
### 开发环境
```bash
# 启动开发环境
docker-compose -f docker-compose.dev.yml up -d
# 查看服务状态
docker-compose -f docker-compose.dev.yml ps
# 查看日志
docker-compose -f docker-compose.dev.yml logs -f
```
## 网络测试
启动服务后,测试网络连接:
```bash
# 测试容器间网络连接
./docker/test-network.sh
```
## 应用初始化
服务启动后初始化Laravel应用
```bash
# 运行数据库迁移
docker exec knowledge_base_app php artisan migrate
# 运行数据库种子
docker exec knowledge_base_app php artisan db:seed
# 创建搜索索引
docker exec knowledge_base_app php artisan scout:import "App\Models\Document"
```
## 环境配置详解
### 网络配置
- **生产环境网络**: `knowledge_base_network` (172.20.0.0/16)
- **开发环境网络**: `knowledge_base_dev_network` (172.21.0.0/16)
### 端口映射
#### 生产环境
- Web应用: 80
- MySQL: 3306
- Redis: 6379
- Meilisearch: 7700
#### 开发环境
- Web应用: 8080
- MySQL: 3307
- Redis: 6380
- Meilisearch: 7701
- PHP-FPM调试: 9000
### 存储卷
#### 生产环境
- 数据库数据: `./storage/mysql`
- Redis数据: `./storage/redis`
- 搜索数据: `./storage/meilisearch`
- 应用存储: `./storage/app`
- 日志文件: `./storage/logs`
#### 开发环境
- 数据库数据: `./storage/dev/mysql`
- Redis数据: `./storage/dev/redis`
- 搜索数据: `./storage/dev/meilisearch`
- 应用存储: `./storage/dev/app`
- 日志文件: `./storage/dev/logs`
## 环境变量说明
### 必需配置
| 变量名 | 说明 | 示例 |
|--------|------|------|
| `APP_KEY` | 应用加密密钥 | `base64:xxx...` |
| `DB_PASSWORD` | 数据库密码 | `secure_password` |
| `MEILISEARCH_KEY` | 搜索引擎密钥 | `master_key_xxx` |
### 可选配置
| 变量名 | 默认值 | 说明 |
|--------|--------|------|
| `APP_NAME` | 知识库系统 | 应用名称 |
| `APP_URL` | http://localhost | 应用URL |
| `DB_DATABASE` | knowledge_base | 数据库名 |
| `DB_USERNAME` | knowledge_user | 数据库用户 |
## 故障排除
### 常见问题
1. **容器启动失败**
```bash
# 查看容器日志
docker-compose logs [service_name]
# 检查容器状态
docker-compose ps
```
2. **网络连接问题**
```bash
# 测试网络连接
./docker/test-network.sh
# 检查网络配置
docker network ls
docker network inspect knowledge_base_network
```
3. **环境变量问题**
```bash
# 验证环境变量
./docker/validate-env.sh
# 查看容器环境变量
docker exec knowledge_base_app env
```
4. **权限问题**
```bash
# 修复存储目录权限
chmod -R 775 storage
chmod -R 775 bootstrap/cache
```
### 重置环境
如果需要重置环境:
```bash
# 停止所有服务
docker-compose down
# 删除数据卷(注意:这会删除所有数据)
docker-compose down -v
# 重新配置环境
./docker/setup-env.sh -f -e production
# 重新启动服务
docker-compose up -d
```
## 安全建议
### 生产环境
1. **更改默认密码**:确保所有默认密码都已更改
2. **使用强密钥**使用复杂的APP_KEY和MEILISEARCH_KEY
3. **限制网络访问**:配置防火墙规则
4. **定期备份**:定期备份数据库和文件
5. **监控日志**:监控应用和系统日志
### 开发环境
1. **隔离环境**:不要在生产环境使用开发配置
2. **定期更新**:保持开发环境与生产环境同步
3. **清理数据**:定期清理开发环境数据
## 维护操作
### 备份
```bash
# 备份数据库
docker exec knowledge_base_mysql mysqldump -u root -p knowledge_base > backup.sql
# 备份文件
tar -czf storage_backup.tar.gz storage/
```
### 更新
```bash
# 更新镜像
docker-compose pull
# 重启服务
docker-compose up -d
```
### 监控
```bash
# 查看资源使用情况
docker stats
# 查看服务健康状态
docker-compose ps
```