- 添加 Dockerfile 与多套 docker-compose 配置(开发/生产环境) - 集成 Laravel Octane (Swoole) 提升性能 - 新增健康检查、监控脚本及部署文档 - 新增 Docker 镜像离线导入包(MySQL/Redis/Meilisearch) - 优化文档转换、预览服务及队列任务 - 添加 CreateAdminUser 命令与路由健康检查接口 - 新增 Swoole 队列兼容性测试套件 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
5.3 KiB
5.3 KiB
环境配置设置指南
概述
本指南介绍如何配置和设置知识库系统的Docker部署环境,包括生产环境和开发环境的配置。
快速开始
1. 自动配置(推荐)
使用自动配置脚本快速设置环境:
# 生产环境配置
./docker/setup-env.sh -e production
# 开发环境配置
./docker/setup-env.sh -e development
# 交互式配置
./docker/setup-env.sh -i
2. 手动配置
如果需要手动配置,请按照以下步骤:
生产环境
-
复制环境模板:
cp .env.production .env -
编辑
.env文件,修改以下关键配置: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 -
生成应用密钥:
php artisan key:generate
开发环境
-
复制开发环境模板:
cp .env.development .env -
编辑配置(开发环境可以使用默认值)
配置验证
验证环境变量
# 验证当前环境配置
./docker/validate-env.sh
验证Docker配置
# 验证生产环境配置
docker-compose config
# 验证开发环境配置
docker-compose -f docker-compose.dev.yml config
启动服务
生产环境
# 启动所有服务
docker-compose up -d
# 查看服务状态
docker-compose ps
# 查看日志
docker-compose logs -f
开发环境
# 启动开发环境
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
网络测试
启动服务后,测试网络连接:
# 测试容器间网络连接
./docker/test-network.sh
应用初始化
服务启动后,初始化Laravel应用:
# 运行数据库迁移
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 | 数据库用户 |
故障排除
常见问题
-
容器启动失败
# 查看容器日志 docker-compose logs [service_name] # 检查容器状态 docker-compose ps -
网络连接问题
# 测试网络连接 ./docker/test-network.sh # 检查网络配置 docker network ls docker network inspect knowledge_base_network -
环境变量问题
# 验证环境变量 ./docker/validate-env.sh # 查看容器环境变量 docker exec knowledge_base_app env -
权限问题
# 修复存储目录权限 chmod -R 775 storage chmod -R 775 bootstrap/cache
重置环境
如果需要重置环境:
# 停止所有服务
docker-compose down
# 删除数据卷(注意:这会删除所有数据)
docker-compose down -v
# 重新配置环境
./docker/setup-env.sh -f -e production
# 重新启动服务
docker-compose up -d
安全建议
生产环境
- 更改默认密码:确保所有默认密码都已更改
- 使用强密钥:使用复杂的APP_KEY和MEILISEARCH_KEY
- 限制网络访问:配置防火墙规则
- 定期备份:定期备份数据库和文件
- 监控日志:监控应用和系统日志
开发环境
- 隔离环境:不要在生产环境使用开发配置
- 定期更新:保持开发环境与生产环境同步
- 清理数据:定期清理开发环境数据
维护操作
备份
# 备份数据库
docker exec knowledge_base_mysql mysqldump -u root -p knowledge_base > backup.sql
# 备份文件
tar -czf storage_backup.tar.gz storage/
更新
# 更新镜像
docker-compose pull
# 重启服务
docker-compose up -d
监控
# 查看资源使用情况
docker stats
# 查看服务健康状态
docker-compose ps