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

5.3 KiB
Raw Permalink Blame History

环境配置设置指南

概述

本指南介绍如何配置和设置知识库系统的Docker部署环境包括生产环境和开发环境的配置。

快速开始

1. 自动配置(推荐)

使用自动配置脚本快速设置环境:

# 生产环境配置
./docker/setup-env.sh -e production

# 开发环境配置
./docker/setup-env.sh -e development

# 交互式配置
./docker/setup-env.sh -i

2. 手动配置

如果需要手动配置,请按照以下步骤:

生产环境

  1. 复制环境模板:

    cp .env.production .env
    
  2. 编辑 .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
    
  3. 生成应用密钥:

    php artisan key:generate
    

开发环境

  1. 复制开发环境模板:

    cp .env.development .env
    
  2. 编辑配置(开发环境可以使用默认值)

配置验证

验证环境变量

# 验证当前环境配置
./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 数据库用户

故障排除

常见问题

  1. 容器启动失败

    # 查看容器日志
    docker-compose logs [service_name]
    
    # 检查容器状态
    docker-compose ps
    
  2. 网络连接问题

    # 测试网络连接
    ./docker/test-network.sh
    
    # 检查网络配置
    docker network ls
    docker network inspect knowledge_base_network
    
  3. 环境变量问题

    # 验证环境变量
    ./docker/validate-env.sh
    
    # 查看容器环境变量
    docker exec knowledge_base_app env
    
  4. 权限问题

    # 修复存储目录权限
    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

安全建议

生产环境

  1. 更改默认密码:确保所有默认密码都已更改
  2. 使用强密钥使用复杂的APP_KEY和MEILISEARCH_KEY
  3. 限制网络访问:配置防火墙规则
  4. 定期备份:定期备份数据库和文件
  5. 监控日志:监控应用和系统日志

开发环境

  1. 隔离环境:不要在生产环境使用开发配置
  2. 定期更新:保持开发环境与生产环境同步
  3. 清理数据:定期清理开发环境数据

维护操作

备份

# 备份数据库
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