# Docker 环境脚本注入配置指南 ## 概述 本指南专门针对 Docker 环境中的油猴脚本注入功能配置。 ## 快速开始 ### 1. 基础配置 ```bash # 进入 docker 目录 cd docker # 复制配置模板 cp .env.docker .env # 编辑配置文件 nano .env ``` 在 `.env` 文件中确保以下配置: ```env # 启用脚本注入 ENABLE_SCRIPT_INJECTION=true # 使用默认脚本(模型数据直接从脚本解析) USERSCRIPT_PATH=browser_utils/more_modles.js ``` ### 2. 启动容器 ```bash # 构建并启动 docker compose up -d # 查看日志确认脚本注入状态 docker compose logs -f | grep "脚本注入" ``` ## 自定义配置 ### 方法 1: 直接替换脚本文件 ```bash # 1. 创建自定义油猴脚本 cp ../browser_utils/more_modles.js ../browser_utils/my_custom_script.js # 2. 编辑脚本文件中的 MODELS_TO_INJECT 数组 nano ../browser_utils/my_custom_script.js # 3. 重启容器 docker compose restart ``` ### 方法 2: 挂载自定义脚本 ```bash # 1. 创建自定义脚本文件 cp ../browser_utils/more_modles.js ../browser_utils/my_script.js # 2. 编辑 docker-compose.yml,取消注释并修改: # volumes: # - ../browser_utils/my_script.js:/app/browser_utils/more_modles.js:ro # 3. 重启服务 docker compose down docker compose up -d ``` ### 方法 3: 环境变量配置 ```bash # 1. 在 .env 文件中修改路径 echo "USERSCRIPT_PATH=browser_utils/my_custom_script.js" >> .env # 2. 创建对应的脚本文件 cp ../browser_utils/more_modles.js ../browser_utils/my_custom_script.js # 3. 重启容器 docker compose restart ``` ## 验证脚本注入 ### 检查日志 ```bash # 查看脚本注入相关日志 docker compose logs | grep -E "(脚本注入|script.*inject|模型增强)" # 实时监控日志 docker compose logs -f | grep -E "(脚本注入|script.*inject|模型增强)" ``` ### 预期日志输出 成功的脚本注入应该显示类似以下日志: ``` 设置网络拦截和脚本注入... 成功设置模型列表网络拦截 成功解析 6 个模型从油猴脚本 添加了 6 个注入的模型到API模型列表 ✅ 脚本注入成功,模型显示效果与油猴脚本100%一致 解析的模型: 👑 Kingfall, ✨ Gemini 2.5 Pro, 🦁 Goldmane... ``` ### 进入容器检查 ```bash # 进入容器 docker compose exec ai-studio-proxy /bin/bash # 检查脚本文件 cat /app/browser_utils/more_modles.js # 检查脚本文件列表 ls -la /app/browser_utils/*.js # 退出容器 exit ``` ## 故障排除 ### 脚本注入失败 1. **检查配置文件路径**: ```bash docker compose exec ai-studio-proxy ls -la /app/browser_utils/ ``` 2. **检查文件权限**: ```bash docker compose exec ai-studio-proxy cat /app/browser_utils/more_modles.js ``` 3. **查看详细错误日志**: ```bash docker compose logs | grep -A 5 -B 5 "脚本注入" ``` ### 脚本文件无效 1. **验证 JavaScript 格式**: ```bash # 在主机上验证 JavaScript 语法 node -c browser_utils/more_modles.js ``` 2. **检查必需字段**: 确保每个模型都有 `name` 和 `displayName` 字段。 ### 禁用脚本注入 如果遇到问题,可以临时禁用: ```bash # 在 .env 文件中设置 echo "ENABLE_SCRIPT_INJECTION=false" >> .env # 重启容器 docker compose restart ``` ## 高级配置 ### 使用自定义脚本 ```bash # 1. 将自定义脚本放在 browser_utils/ 目录 cp your_custom_script.js ../browser_utils/custom_injector.js # 2. 在 .env 中修改脚本路径 echo "USERSCRIPT_PATH=browser_utils/custom_injector.js" >> .env # 3. 重启容器 docker compose restart ``` ### 多环境配置 ```bash # 开发环境 cp .env.docker .env.dev # 编辑 .env.dev # 生产环境 cp .env.docker .env.prod # 编辑 .env.prod # 使用特定环境启动 cp .env.prod .env docker compose up -d ``` ## 注意事项 1. **文件挂载**: 确保主机上的文件路径正确 2. **权限问题**: Docker 容器内的文件权限可能需要调整 3. **重启生效**: 配置更改后需要重启容器 4. **日志监控**: 通过日志确认脚本注入状态 5. **备份配置**: 建议备份工作的配置文件 ## 示例配置文件 参考 `model_configs_docker_example.json` 文件了解完整的配置格式和选项。