mirror of
https://github.com/camel-ai/owl.git
synced 2025-12-26 10:07:51 +08:00
optimization bat
This commit is contained in:
parent
63a14115b0
commit
764161a3fa
@ -1,6 +1,12 @@
|
||||
@echo off
|
||||
setlocal enabledelayedexpansion
|
||||
|
||||
REM 定义配置变量
|
||||
set SERVICE_NAME=owl
|
||||
set PYTHON_CMD=xvfb-python
|
||||
set MAX_WAIT_SECONDS=60
|
||||
set CHECK_INTERVAL_SECONDS=2
|
||||
|
||||
REM 检查参数
|
||||
if "%~1"=="" (
|
||||
echo 用法: run_in_docker.bat [脚本名称] "你的问题"
|
||||
@ -37,20 +43,69 @@ if not exist "owl\!SCRIPT_NAME!" (
|
||||
echo 使用脚本: !SCRIPT_NAME!
|
||||
echo 查询内容: !QUERY!
|
||||
|
||||
REM 从docker-compose.yml获取服务名称(如果文件存在)
|
||||
if exist ".container\docker-compose.yml" (
|
||||
for /f "tokens=*" %%a in ('findstr /r "^ [a-zA-Z0-9_-]*:" .container\docker-compose.yml') do (
|
||||
set line=%%a
|
||||
set service=!line:~2,-1!
|
||||
if not "!service!"=="" (
|
||||
REM 使用第一个找到的服务名称
|
||||
set SERVICE_NAME=!service!
|
||||
echo 从docker-compose.yml检测到服务名称: !SERVICE_NAME!
|
||||
goto :found_service
|
||||
)
|
||||
)
|
||||
)
|
||||
:found_service
|
||||
|
||||
REM 确保Docker容器正在运行
|
||||
docker-compose ps | findstr "owl.*Up" > nul
|
||||
docker-compose ps | findstr "!SERVICE_NAME!.*Up" > nul
|
||||
if errorlevel 1 (
|
||||
echo 启动Docker容器...
|
||||
docker-compose up -d
|
||||
|
||||
REM 等待容器启动
|
||||
REM 使用循环检查容器是否就绪
|
||||
echo 等待容器启动...
|
||||
timeout /t 5 /nobreak > nul
|
||||
set /a total_wait=0
|
||||
|
||||
:wait_loop
|
||||
timeout /t !CHECK_INTERVAL_SECONDS! /nobreak > nul
|
||||
set /a total_wait+=!CHECK_INTERVAL_SECONDS!
|
||||
|
||||
docker-compose ps | findstr "!SERVICE_NAME!.*Up" > nul
|
||||
if errorlevel 1 (
|
||||
if !total_wait! LSS !MAX_WAIT_SECONDS! (
|
||||
echo 容器尚未就绪,已等待!total_wait!秒,继续等待...
|
||||
goto :wait_loop
|
||||
) else (
|
||||
echo 错误:容器启动超时,已等待!MAX_WAIT_SECONDS!秒
|
||||
echo 请检查Docker容器状态:docker-compose ps
|
||||
exit /b 1
|
||||
)
|
||||
) else (
|
||||
echo 容器已就绪,共等待了!total_wait!秒
|
||||
)
|
||||
)
|
||||
|
||||
REM 检查容器中是否存在xvfb-python命令
|
||||
echo 检查容器中的命令...
|
||||
docker-compose exec -T !SERVICE_NAME! which !PYTHON_CMD! > nul 2>&1
|
||||
if errorlevel 1 (
|
||||
echo 警告:容器中未找到!PYTHON_CMD!命令,尝试使用python替代
|
||||
set PYTHON_CMD=python
|
||||
|
||||
REM 检查python命令是否存在
|
||||
docker-compose exec -T !SERVICE_NAME! which python > nul 2>&1
|
||||
if errorlevel 1 (
|
||||
echo 错误:容器中未找到python命令
|
||||
echo 请检查容器配置
|
||||
exit /b 1
|
||||
)
|
||||
)
|
||||
|
||||
REM 在容器中运行指定的脚本,传递查询参数
|
||||
echo 在Docker容器中运行脚本...
|
||||
docker-compose exec -T owl xvfb-python !SCRIPT_NAME! "!QUERY!"
|
||||
echo 在Docker容器中使用!PYTHON_CMD!运行脚本...
|
||||
docker-compose exec -T !SERVICE_NAME! !PYTHON_CMD! !SCRIPT_NAME! "!QUERY!"
|
||||
|
||||
if errorlevel 0 (
|
||||
echo 查询完成!
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user