.container/DOCKER_README.md
本文档提供了如何使用Docker运行OWL项目的详细说明。
本Docker配置使用了以下技术来确保OWL项目在容器中正常运行:
本项目使用的docker-compose.yml文件兼容Docker Compose v2.x版本。如果您使用的是较旧的Docker Compose v1.x版本,可能需要手动添加版本号:
version: '3'
services:
# ...其余配置保持不变
首先,运行检查脚本确保您的环境已准备好:
# 先给脚本添加执行权限
chmod +x check_docker.sh
# 运行检查脚本
./check_docker.sh
check_docker.bat
如果检查脚本发现任何问题,请按照提示进行修复。
复制环境变量模板文件并填写必要的API密钥:
cp owl/.env_template owl/.env
然后编辑 owl/.env 文件,填写必要的API密钥,例如:
OPENAI_API_KEY=your_openai_api_key
GOOGLE_API_KEY=your_google_api_key
SEARCH_ENGINE_ID=your_search_engine_id
使用提供的Shell脚本,可以加速Docker镜像的构建:
# 先给脚本添加执行权限
chmod +x build_docker.sh
# 运行构建脚本
./build_docker.sh
使用提供的批处理文件:
build_docker.bat
或者使用标准方式构建并启动:
# 使用BuildKit加速构建
set DOCKER_BUILDKIT=1
set COMPOSE_DOCKER_CLI_BUILD=1
docker-compose build --build-arg BUILDKIT_INLINE_CACHE=1
# 启动容器
docker-compose up -d
容器启动后,会自动进入交互式shell环境,并显示欢迎信息和可用脚本列表:
# 进入容器(如果没有自动进入)
docker-compose exec owl bash
在容器内,您可以直接运行任何可用的脚本:
# 运行默认脚本
xvfb-python run.py
# 运行DeepSeek示例
xvfb-python run_deepseek_example.py
# 运行脚本并传递查询参数
xvfb-python run.py "什么是人工智能?"
# 先给脚本添加执行权限
chmod +x run_in_docker.sh
# 默认使用 run.py 脚本
./run_in_docker.sh "你的问题"
# 指定使用特定脚本
./run_in_docker.sh run_deepseek_example.py "你的问题"
REM 默认使用 run.py 脚本
run_in_docker.bat "你的问题"
REM 指定使用特定脚本
run_in_docker.bat run_deepseek_example.py "你的问题"
可用脚本:
run.py - 默认脚本,使用OpenAI GPT-4o模型run_deepseek_example.py - 使用DeepSeek模型run_gaia_roleplaying.py - GAIA基准测试脚本Docker Compose配置中已经设置了以下挂载点:
./owl/.env:/app/owl/.env:挂载环境变量文件,方便修改API密钥./data:/app/data:挂载数据目录,用于存储和访问数据文件playwright-cache:持久化卷,用于缓存Playwright浏览器pip-cache:持久化卷,用于缓存pip包您可以通过以下两种方式设置环境变量:
owl/.env 文件docker-compose.yml 文件的 environment 部分添加环境变量本Docker配置包含多项构建优化:
pip-cache)playwright-cache).docker-cache)如果需要清理缓存,可以使用以下命令:
# 清理Docker构建缓存
docker builder prune
# 清理Docker卷(会删除所有未使用的卷,包括缓存卷)
docker volume prune
# 清理本地缓存目录
rm -rf .docker-cache
本项目提供了适用于不同操作系统的脚本:
检查脚本:
check_docker.sh(macOS/Linux):检查Docker环境check_docker.bat(Windows):检查Docker环境构建脚本:
build_docker.sh(macOS/Linux):构建Docker镜像build_docker.bat(Windows):构建Docker镜像运行脚本:
run_in_docker.sh(macOS/Linux):运行Docker容器中的脚本run_in_docker.bat(Windows):运行Docker容器中的脚本这些脚本会自动检测操作系统类型,并使用适当的命令。
检查日志以获取更多信息:
docker-compose logs
确保您已经在 owl/.env 文件中正确设置了所有必要的API密钥。
如果您看到关于version属性过时的警告:
WARN[0000] docker-compose.yml: the attribute `version` is obsolete
这是因为您使用的是Docker Compose v2.x,它不再需要显式指定版本号。我们已经从配置文件中移除了这个属性,所以您不会再看到这个警告。
如果遇到浏览器相关的问题,可以尝试以下解决方案:
xvfb-python命令运行Python脚本如果构建速度慢,可以尝试以下解决方案:
DOCKER_BUILDKIT=1)--build-arg BUILDKIT_INLINE_CACHE=1参数构建(已在构建脚本中配置)如果在Windows上遇到问题:
docker compose(无连字符)如果遇到内存不足的问题,可以在 docker-compose.yml 文件中调整资源限制:
services:
owl:
# 其他配置...
deploy:
resources:
limits:
cpus: '4' # 增加CPU核心数
memory: 8G # 增加内存限制
如果需要自定义Docker镜像,可以修改 Dockerfile 文件,然后重新构建:
# macOS/Linux
./build_docker.sh
# Windows
build_docker.bat