mirror of
https://github.com/camel-ai/owl.git
synced 2026-03-22 05:57:17 +08:00
update docker docstring language
This commit is contained in:
@@ -1,62 +1,62 @@
|
||||
@echo off
|
||||
echo 检查Docker环境...
|
||||
echo 检查Docker环境... | Checking Docker environment...
|
||||
|
||||
REM 检查Docker是否安装
|
||||
REM 检查Docker是否安装 | Check if Docker is installed
|
||||
where docker >nul 2>nul
|
||||
if %ERRORLEVEL% NEQ 0 (
|
||||
echo 错误: Docker未安装
|
||||
echo 在Windows上安装Docker的方法:
|
||||
echo 1. 访问 https://docs.docker.com/desktop/install/windows-install/ 下载Docker Desktop
|
||||
echo 2. 安装并启动Docker Desktop
|
||||
echo 错误 | Error: Docker未安装 | Docker not installed
|
||||
echo 在Windows上安装Docker的方法 | How to install Docker on Windows:
|
||||
echo 1. 访问 | Visit https://docs.docker.com/desktop/install/windows-install/ 下载Docker Desktop | to download Docker Desktop
|
||||
echo 2. 安装并启动Docker Desktop | Install and start Docker Desktop
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
echo Docker已安装
|
||||
echo Docker已安装 | Docker is installed
|
||||
|
||||
REM 检查Docker Compose是否安装
|
||||
REM 检查Docker Compose是否安装 | Check if Docker Compose is installed
|
||||
where docker-compose >nul 2>nul
|
||||
if %ERRORLEVEL% NEQ 0 (
|
||||
echo 警告: Docker-Compose未找到,尝试使用新的docker compose命令
|
||||
echo 警告 | Warning: Docker-Compose未找到,尝试使用新的docker compose命令 | Docker-Compose not found, trying to use new docker compose command
|
||||
docker compose version >nul 2>nul
|
||||
if %ERRORLEVEL% NEQ 0 (
|
||||
echo 错误: Docker Compose未安装
|
||||
echo Docker Desktop for Windows应该已包含Docker Compose
|
||||
echo 请确保Docker Desktop已正确安装
|
||||
echo 错误 | Error: Docker Compose未安装 | Docker Compose not installed
|
||||
echo Docker Desktop for Windows应该已包含Docker Compose | Docker Desktop for Windows should already include Docker Compose
|
||||
echo 请确保Docker Desktop已正确安装 | Please make sure Docker Desktop is properly installed
|
||||
pause
|
||||
exit /b 1
|
||||
) else (
|
||||
echo 使用新的docker compose命令
|
||||
echo 使用新的docker compose命令 | Using new docker compose command
|
||||
set COMPOSE_CMD=docker compose
|
||||
)
|
||||
) else (
|
||||
echo Docker-Compose已安装
|
||||
echo Docker-Compose已安装 | Docker-Compose is installed
|
||||
set COMPOSE_CMD=docker-compose
|
||||
)
|
||||
|
||||
REM 检查Docker是否正在运行
|
||||
REM 检查Docker是否正在运行 | Check if Docker is running
|
||||
docker info >nul 2>nul
|
||||
if %ERRORLEVEL% NEQ 0 (
|
||||
echo 错误: Docker未运行
|
||||
echo 请启动Docker Desktop应用程序
|
||||
echo 错误 | Error: Docker未运行 | Docker not running
|
||||
echo 请启动Docker Desktop应用程序 | Please start Docker Desktop application
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
echo Docker正在运行
|
||||
echo Docker正在运行 | Docker is running
|
||||
|
||||
REM 检查是否有.env文件
|
||||
REM 检查是否有.env文件 | Check if .env file exists
|
||||
if not exist "owl\.env" (
|
||||
echo 警告: 未找到owl\.env文件
|
||||
echo 请运行以下命令创建环境变量文件:
|
||||
echo 警告 | Warning: 未找到owl\.env文件 | owl\.env file not found
|
||||
echo 请运行以下命令创建环境变量文件 | Please run the following command to create environment variable file:
|
||||
echo copy owl\.env_template owl\.env
|
||||
echo 然后编辑owl\.env文件,填写必要的API密钥
|
||||
echo 然后编辑owl\.env文件,填写必要的API密钥 | Then edit owl\.env file and fill in necessary API keys
|
||||
) else (
|
||||
echo 环境变量文件已存在
|
||||
echo 环境变量文件已存在 | Environment variable file exists
|
||||
)
|
||||
|
||||
echo 所有检查完成,您的系统已准备好构建和运行OWL项目的Docker容器
|
||||
echo 请运行以下命令构建Docker镜像:
|
||||
echo 所有检查完成,您的系统已准备好构建和运行OWL项目的Docker容器 | All checks completed, your system is ready to build and run OWL project Docker container
|
||||
echo 请运行以下命令构建Docker镜像 | Please run the following command to build Docker image:
|
||||
echo %COMPOSE_CMD% build
|
||||
|
||||
pause
|
||||
pause
|
||||
@@ -1,92 +1,92 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 检测操作系统类型
|
||||
# 检测操作系统类型 | Detect operating system type
|
||||
OS_TYPE=$(uname -s)
|
||||
echo "检测到操作系统: $OS_TYPE"
|
||||
echo "检测到操作系统 | Detected OS: $OS_TYPE"
|
||||
|
||||
# 检查Docker是否安装
|
||||
# 检查Docker是否安装 | Check if Docker is installed
|
||||
if ! command -v docker &> /dev/null; then
|
||||
echo "错误: Docker未安装"
|
||||
echo "错误 | Error: Docker未安装 | Docker not installed"
|
||||
|
||||
if [[ "$OS_TYPE" == "Darwin" ]]; then
|
||||
echo "在macOS上安装Docker的方法:"
|
||||
echo "1. 访问 https://docs.docker.com/desktop/install/mac-install/ 下载Docker Desktop"
|
||||
echo "2. 安装并启动Docker Desktop"
|
||||
echo "在macOS上安装Docker的方法 | How to install Docker on macOS:"
|
||||
echo "1. 访问 | Visit https://docs.docker.com/desktop/install/mac-install/ 下载Docker Desktop | to download Docker Desktop"
|
||||
echo "2. 安装并启动Docker Desktop | Install and start Docker Desktop"
|
||||
elif [[ "$OS_TYPE" == "Linux" ]]; then
|
||||
echo "在Linux上安装Docker的方法:"
|
||||
echo "1. 运行以下命令:"
|
||||
echo "在Linux上安装Docker的方法 | How to install Docker on Linux:"
|
||||
echo "1. 运行以下命令 | Run the following commands:"
|
||||
echo " sudo apt-get update"
|
||||
echo " sudo apt-get install docker.io docker-compose"
|
||||
echo "2. 启动Docker服务:"
|
||||
echo "2. 启动Docker服务 | Start Docker service:"
|
||||
echo " sudo systemctl start docker"
|
||||
echo " sudo systemctl enable docker"
|
||||
elif [[ "$OS_TYPE" == MINGW* ]] || [[ "$OS_TYPE" == CYGWIN* ]] || [[ "$OS_TYPE" == MSYS* ]]; then
|
||||
echo "在Windows上安装Docker的方法:"
|
||||
echo "1. 访问 https://docs.docker.com/desktop/install/windows-install/ 下载Docker Desktop"
|
||||
echo "2. 安装并启动Docker Desktop"
|
||||
echo "在Windows上安装Docker的方法 | How to install Docker on Windows:"
|
||||
echo "1. 访问 | Visit https://docs.docker.com/desktop/install/windows-install/ 下载Docker Desktop | to download Docker Desktop"
|
||||
echo "2. 安装并启动Docker Desktop | Install and start Docker Desktop"
|
||||
fi
|
||||
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Docker已安装"
|
||||
echo "Docker已安装 | Docker is installed"
|
||||
|
||||
# 检查Docker Compose是否安装
|
||||
# 检查Docker Compose是否安装 | Check if Docker Compose is installed
|
||||
if ! command -v docker-compose &> /dev/null; then
|
||||
echo "错误: Docker Compose未安装"
|
||||
echo "错误 | Error: Docker Compose未安装 | Docker Compose not installed"
|
||||
|
||||
if [[ "$OS_TYPE" == "Darwin" ]]; then
|
||||
echo "Docker Desktop for Mac已包含Docker Compose"
|
||||
echo "Docker Desktop for Mac已包含Docker Compose | Docker Desktop for Mac already includes Docker Compose"
|
||||
elif [[ "$OS_TYPE" == "Linux" ]]; then
|
||||
echo "在Linux上安装Docker Compose的方法:"
|
||||
echo "1. 运行以下命令:"
|
||||
echo "在Linux上安装Docker Compose的方法 | How to install Docker Compose on Linux:"
|
||||
echo "1. 运行以下命令 | Run the following command:"
|
||||
echo " sudo apt-get install docker-compose"
|
||||
elif [[ "$OS_TYPE" == MINGW* ]] || [[ "$OS_TYPE" == CYGWIN* ]] || [[ "$OS_TYPE" == MSYS* ]]; then
|
||||
echo "Docker Desktop for Windows已包含Docker Compose"
|
||||
echo "Docker Desktop for Windows已包含Docker Compose | Docker Desktop for Windows already includes Docker Compose"
|
||||
fi
|
||||
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Docker Compose已安装"
|
||||
echo "Docker Compose已安装 | Docker Compose is installed"
|
||||
|
||||
# 检查Docker是否正在运行
|
||||
# 检查Docker是否正在运行 | Check if Docker is running
|
||||
if ! docker info &> /dev/null; then
|
||||
echo "错误: Docker未运行"
|
||||
echo "错误 | Error: Docker未运行 | Docker not running"
|
||||
|
||||
if [[ "$OS_TYPE" == "Darwin" ]]; then
|
||||
echo "请启动Docker Desktop应用程序"
|
||||
echo "请启动Docker Desktop应用程序 | Please start Docker Desktop application"
|
||||
elif [[ "$OS_TYPE" == "Linux" ]]; then
|
||||
echo "请运行以下命令启动Docker服务:"
|
||||
echo "请运行以下命令启动Docker服务 | Please run the following command to start Docker service:"
|
||||
echo "sudo systemctl start docker"
|
||||
elif [[ "$OS_TYPE" == MINGW* ]] || [[ "$OS_TYPE" == CYGWIN* ]] || [[ "$OS_TYPE" == MSYS* ]]; then
|
||||
echo "请启动Docker Desktop应用程序"
|
||||
echo "请启动Docker Desktop应用程序 | Please start Docker Desktop application"
|
||||
fi
|
||||
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Docker正在运行"
|
||||
echo "Docker正在运行 | Docker is running"
|
||||
|
||||
# 检查是否有足够的磁盘空间
|
||||
# 检查是否有足够的磁盘空间 | Check if there is enough disk space
|
||||
FREE_SPACE=$(df -h . | awk 'NR==2 {print $4}')
|
||||
echo "可用磁盘空间: $FREE_SPACE"
|
||||
echo "可用磁盘空间 | Available disk space: $FREE_SPACE"
|
||||
|
||||
# 检查是否有.env文件
|
||||
# 检查是否有.env文件 | Check if .env file exists
|
||||
if [ ! -f "owl/.env" ]; then
|
||||
echo "警告: 未找到owl/.env文件"
|
||||
echo "请运行以下命令创建环境变量文件:"
|
||||
echo "警告 | Warning: 未找到owl/.env文件 | owl/.env file not found"
|
||||
echo "请运行以下命令创建环境变量文件 | Please run the following command to create environment variable file:"
|
||||
echo "cp owl/.env_template owl/.env"
|
||||
echo "然后编辑owl/.env文件,填写必要的API密钥"
|
||||
echo "然后编辑owl/.env文件,填写必要的API密钥 | Then edit owl/.env file and fill in necessary API keys"
|
||||
else
|
||||
echo "环境变量文件已存在"
|
||||
echo "环境变量文件已存在 | Environment variable file exists"
|
||||
fi
|
||||
|
||||
echo "所有检查完成,您的系统已准备好构建和运行OWL项目的Docker容器"
|
||||
echo "请运行以下命令构建Docker镜像:"
|
||||
echo "所有检查完成,您的系统已准备好构建和运行OWL项目的Docker容器 | All checks completed, your system is ready to build and run OWL project Docker container"
|
||||
echo "请运行以下命令构建Docker镜像 | Please run the following command to build Docker image:"
|
||||
|
||||
if [[ "$OS_TYPE" == MINGW* ]] || [[ "$OS_TYPE" == CYGWIN* ]] || [[ "$OS_TYPE" == MSYS* ]]; then
|
||||
echo "build_docker.bat"
|
||||
else
|
||||
echo "./build_docker.sh"
|
||||
fi
|
||||
fi
|
||||
@@ -1,71 +1,71 @@
|
||||
@echo off
|
||||
setlocal enabledelayedexpansion
|
||||
|
||||
REM 定义配置变量
|
||||
REM 定义配置变量 | Define configuration variables
|
||||
set SERVICE_NAME=owl
|
||||
set PYTHON_CMD=xvfb-python
|
||||
set MAX_WAIT_SECONDS=60
|
||||
set CHECK_INTERVAL_SECONDS=2
|
||||
|
||||
REM 检查参数
|
||||
REM 检查参数 | Check parameters
|
||||
if "%~1"=="" (
|
||||
echo 用法: run_in_docker.bat [脚本名称] "你的问题"
|
||||
echo 例如: run_in_docker.bat run.py "什么是人工智能?"
|
||||
echo 或者: run_in_docker.bat run_deepseek_example.py "什么是人工智能?"
|
||||
echo 如果不指定脚本名称,默认使用 run.py
|
||||
echo 用法 | Usage: run_in_docker.bat [脚本名称 | script name] "你的问题 | your question"
|
||||
echo 例如 | Example: run_in_docker.bat run.py "什么是人工智能? | What is artificial intelligence?"
|
||||
echo 或者 | Or: run_in_docker.bat run_deepseek_example.py "什么是人工智能? | What is artificial intelligence?"
|
||||
echo 如果不指定脚本名称,默认使用 run.py | If script name is not specified, run.py will be used by default
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
REM 判断第一个参数是否是脚本名称
|
||||
REM 判断第一个参数是否是脚本名称 | Determine if the first parameter is a script name
|
||||
set SCRIPT_NAME=%~1
|
||||
set QUERY=%~2
|
||||
|
||||
if "!SCRIPT_NAME:~-3!"==".py" (
|
||||
REM 如果提供了第二个参数,则为查询内容
|
||||
REM 如果提供了第二个参数,则为查询内容 | If a second parameter is provided, it's the query content
|
||||
if "!QUERY!"=="" (
|
||||
echo 请提供查询参数,例如: run_in_docker.bat !SCRIPT_NAME! "你的问题"
|
||||
echo 请提供查询参数,例如 | Please provide query parameter, e.g.: run_in_docker.bat !SCRIPT_NAME! "你的问题 | your question"
|
||||
exit /b 1
|
||||
)
|
||||
) else (
|
||||
REM 如果第一个参数不是脚本名称,则默认使用 run.py
|
||||
REM 如果第一个参数不是脚本名称,则默认使用 run.py | If the first parameter is not a script name, use run.py by default
|
||||
set QUERY=!SCRIPT_NAME!
|
||||
set SCRIPT_NAME=run.py
|
||||
)
|
||||
|
||||
REM 检查脚本是否存在
|
||||
REM 检查脚本是否存在 | Check if the script exists
|
||||
if not exist "owl\!SCRIPT_NAME!" (
|
||||
echo 错误: 脚本 'owl\!SCRIPT_NAME!' 不存在
|
||||
echo 可用的脚本有:
|
||||
echo 错误 | Error: 脚本 | Script 'owl\!SCRIPT_NAME!' 不存在 | does not exist
|
||||
echo 可用的脚本有 | Available scripts:
|
||||
dir /b owl\*.py | findstr /v "__"
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
echo 使用脚本: !SCRIPT_NAME!
|
||||
echo 查询内容: !QUERY!
|
||||
echo 使用脚本 | Using script: !SCRIPT_NAME!
|
||||
echo 查询内容 | Query content: !QUERY!
|
||||
|
||||
REM 从docker-compose.yml获取服务名称(如果文件存在)
|
||||
REM 从docker-compose.yml获取服务名称(如果文件存在) | Get service name from docker-compose.yml (if file exists)
|
||||
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 使用第一个找到的服务名称
|
||||
REM 使用第一个找到的服务名称 | Use the first service name found
|
||||
set SERVICE_NAME=!service!
|
||||
echo 从docker-compose.yml检测到服务名称: !SERVICE_NAME!
|
||||
echo 从docker-compose.yml检测到服务名称 | Detected service name from docker-compose.yml: !SERVICE_NAME!
|
||||
goto :found_service
|
||||
)
|
||||
)
|
||||
)
|
||||
:found_service
|
||||
|
||||
REM 确保Docker容器正在运行
|
||||
REM 确保Docker容器正在运行 | Ensure Docker container is running
|
||||
docker-compose ps | findstr "!SERVICE_NAME!.*Up" > nul
|
||||
if errorlevel 1 (
|
||||
echo 启动Docker容器...
|
||||
echo 启动Docker容器... | Starting Docker container...
|
||||
docker-compose up -d
|
||||
|
||||
REM 使用循环检查容器是否就绪
|
||||
echo 等待容器启动...
|
||||
REM 使用循环检查容器是否就绪 | Use loop to check if container is ready
|
||||
echo 等待容器启动... | Waiting for container to start...
|
||||
set /a total_wait=0
|
||||
|
||||
:wait_loop
|
||||
@@ -75,42 +75,42 @@ if errorlevel 1 (
|
||||
docker-compose ps | findstr "!SERVICE_NAME!.*Up" > nul
|
||||
if errorlevel 1 (
|
||||
if !total_wait! LSS !MAX_WAIT_SECONDS! (
|
||||
echo 容器尚未就绪,已等待!total_wait!秒,继续等待...
|
||||
echo 容器尚未就绪,已等待!total_wait!秒,继续等待... | Container not ready yet, waited for !total_wait! seconds, continuing to wait...
|
||||
goto :wait_loop
|
||||
) else (
|
||||
echo 错误:容器启动超时,已等待!MAX_WAIT_SECONDS!秒
|
||||
echo 请检查Docker容器状态:docker-compose ps
|
||||
echo 错误 | Error:容器启动超时,已等待!MAX_WAIT_SECONDS!秒 | Container startup timeout, waited for !MAX_WAIT_SECONDS! seconds
|
||||
echo 请检查Docker容器状态 | Please check Docker container status:docker-compose ps
|
||||
exit /b 1
|
||||
)
|
||||
) else (
|
||||
echo 容器已就绪,共等待了!total_wait!秒
|
||||
echo 容器已就绪,共等待了!total_wait!秒 | Container is ready, waited for !total_wait! seconds in total
|
||||
)
|
||||
)
|
||||
|
||||
REM 检查容器中是否存在xvfb-python命令
|
||||
echo 检查容器中的命令...
|
||||
REM 检查容器中是否存在xvfb-python命令 | Check if xvfb-python command exists in container
|
||||
echo 检查容器中的命令... | Checking commands in container...
|
||||
docker-compose exec -T !SERVICE_NAME! which !PYTHON_CMD! > nul 2>&1
|
||||
if errorlevel 1 (
|
||||
echo 警告:容器中未找到!PYTHON_CMD!命令,尝试使用python替代
|
||||
echo 警告 | Warning:容器中未找到!PYTHON_CMD!命令,尝试使用python替代 | !PYTHON_CMD! command not found in container, trying to use python instead
|
||||
set PYTHON_CMD=python
|
||||
|
||||
REM 检查python命令是否存在
|
||||
REM 检查python命令是否存在 | Check if python command exists
|
||||
docker-compose exec -T !SERVICE_NAME! which python > nul 2>&1
|
||||
if errorlevel 1 (
|
||||
echo 错误:容器中未找到python命令
|
||||
echo 请检查容器配置
|
||||
echo 错误 | Error:容器中未找到python命令 | python command not found in container
|
||||
echo 请检查容器配置 | Please check container configuration
|
||||
exit /b 1
|
||||
)
|
||||
)
|
||||
|
||||
REM 在容器中运行指定的脚本,传递查询参数
|
||||
echo 在Docker容器中使用!PYTHON_CMD!运行脚本...
|
||||
REM 在容器中运行指定的脚本,传递查询参数 | Run the specified script in container, passing query parameter
|
||||
echo 在Docker容器中使用!PYTHON_CMD!运行脚本... | Running script in Docker container using !PYTHON_CMD!...
|
||||
docker-compose exec -T !SERVICE_NAME! !PYTHON_CMD! !SCRIPT_NAME! "!QUERY!"
|
||||
|
||||
if errorlevel 0 (
|
||||
echo 查询完成!
|
||||
echo 查询完成! | Query completed!
|
||||
) else (
|
||||
echo 查询执行失败,请检查错误信息。
|
||||
echo 查询执行失败,请检查错误信息。 | Query execution failed, please check error messages.
|
||||
)
|
||||
|
||||
pause
|
||||
pause
|
||||
@@ -1,44 +1,44 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 定义配置变量
|
||||
# 定义配置变量 | Define configuration variables
|
||||
SERVICE_NAME="owl"
|
||||
PYTHON_CMD="xvfb-python"
|
||||
MAX_WAIT_SECONDS=60
|
||||
CHECK_INTERVAL_SECONDS=2
|
||||
|
||||
# 检测操作系统类型
|
||||
# 检测操作系统类型 | Detect operating system type
|
||||
OS_TYPE=$(uname -s)
|
||||
echo "检测到操作系统: $OS_TYPE"
|
||||
echo "检测到操作系统 | Detected operating system: $OS_TYPE"
|
||||
|
||||
# 检查是否提供了查询参数
|
||||
# 检查是否提供了查询参数 | Check if query parameters are provided
|
||||
if [ $# -lt 1 ]; then
|
||||
echo "用法: ./run_in_docker.sh [脚本名称] '你的问题'"
|
||||
echo "例如: ./run_in_docker.sh run.py '什么是人工智能?'"
|
||||
echo "或者: ./run_in_docker.sh run_deepseek_example.py '什么是人工智能?'"
|
||||
echo "如果不指定脚本名称,默认使用 run.py"
|
||||
echo "用法 | Usage: ./run_in_docker.sh [脚本名称 | script name] '你的问题 | your question'"
|
||||
echo "例如 | Example: ./run_in_docker.sh run.py '什么是人工智能? | What is artificial intelligence?'"
|
||||
echo "或者 | Or: ./run_in_docker.sh run_deepseek_example.py '什么是人工智能? | What is artificial intelligence?'"
|
||||
echo "如果不指定脚本名称,默认使用 run.py | If script name is not specified, run.py will be used by default"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 判断第一个参数是否是脚本名称
|
||||
# 判断第一个参数是否是脚本名称 | Determine if the first parameter is a script name
|
||||
if [[ $1 == *.py ]]; then
|
||||
SCRIPT_NAME="$1"
|
||||
# 如果提供了第二个参数,则为查询内容
|
||||
# 如果提供了第二个参数,则为查询内容 | If a second parameter is provided, it's the query content
|
||||
if [ $# -ge 2 ]; then
|
||||
QUERY="$2"
|
||||
else
|
||||
echo "请提供查询参数,例如: ./run_in_docker.sh $SCRIPT_NAME '你的问题'"
|
||||
echo "请提供查询参数,例如 | Please provide query parameter, e.g.: ./run_in_docker.sh $SCRIPT_NAME '你的问题 | your question'"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
# 如果第一个参数不是脚本名称,则默认使用 run.py
|
||||
# 如果第一个参数不是脚本名称,则默认使用 run.py | If the first parameter is not a script name, use run.py by default
|
||||
SCRIPT_NAME="run.py"
|
||||
QUERY="$1"
|
||||
fi
|
||||
|
||||
# 检查脚本是否存在
|
||||
# 检查脚本是否存在 | Check if the script exists
|
||||
if [ ! -f "owl/$SCRIPT_NAME" ]; then
|
||||
echo "错误: 脚本 'owl/$SCRIPT_NAME' 不存在"
|
||||
echo "可用的脚本有:"
|
||||
echo "错误 | Error: 脚本 | Script 'owl/$SCRIPT_NAME' 不存在 | does not exist"
|
||||
echo "可用的脚本有 | Available scripts:"
|
||||
if [[ "$OS_TYPE" == MINGW* ]] || [[ "$OS_TYPE" == CYGWIN* ]] || [[ "$OS_TYPE" == MSYS* ]]; then
|
||||
find owl -name "*.py" | grep -v "__" | sed 's/\\/\//g'
|
||||
else
|
||||
@@ -47,36 +47,36 @@ if [ ! -f "owl/$SCRIPT_NAME" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "使用脚本: $SCRIPT_NAME"
|
||||
echo "查询内容: $QUERY"
|
||||
echo "使用脚本 | Using script: $SCRIPT_NAME"
|
||||
echo "查询内容 | Query content: $QUERY"
|
||||
|
||||
# 从docker-compose.yml获取服务名称(如果文件存在)
|
||||
# 从docker-compose.yml获取服务名称(如果文件存在) | Get service name from docker-compose.yml (if file exists)
|
||||
if [ -f ".container/docker-compose.yml" ]; then
|
||||
DETECTED_SERVICE=$(grep -E "^ [a-zA-Z0-9_-]*:" .container/docker-compose.yml | head -1 | sed 's/^ \(.*\):.*/\1/')
|
||||
if [ ! -z "$DETECTED_SERVICE" ]; then
|
||||
SERVICE_NAME="$DETECTED_SERVICE"
|
||||
echo "从docker-compose.yml检测到服务名称: $SERVICE_NAME"
|
||||
echo "从docker-compose.yml检测到服务名称 | Detected service name from docker-compose.yml: $SERVICE_NAME"
|
||||
fi
|
||||
fi
|
||||
|
||||
# 检查Docker Compose命令
|
||||
# 检查Docker Compose命令 | Check Docker Compose command
|
||||
if command -v docker-compose &> /dev/null; then
|
||||
COMPOSE_CMD="docker-compose"
|
||||
elif docker compose version &> /dev/null; then
|
||||
COMPOSE_CMD="docker compose"
|
||||
else
|
||||
echo "错误: 未找到Docker Compose命令"
|
||||
echo "错误 | Error: 未找到Docker Compose命令 | Docker Compose command not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 确保Docker容器正在运行
|
||||
# 确保Docker容器正在运行 | Ensure Docker container is running
|
||||
CONTAINER_RUNNING=$($COMPOSE_CMD ps | grep -c "$SERVICE_NAME.*Up" || true)
|
||||
if [ "$CONTAINER_RUNNING" -eq 0 ]; then
|
||||
echo "启动Docker容器..."
|
||||
echo "启动Docker容器... | Starting Docker container..."
|
||||
$COMPOSE_CMD up -d
|
||||
|
||||
# 使用循环检查容器是否就绪
|
||||
echo "等待容器启动..."
|
||||
# 使用循环检查容器是否就绪 | Use loop to check if container is ready
|
||||
echo "等待容器启动... | Waiting for container to start..."
|
||||
TOTAL_WAIT=0
|
||||
|
||||
while [ $TOTAL_WAIT -lt $MAX_WAIT_SECONDS ]; do
|
||||
@@ -85,51 +85,51 @@ if [ "$CONTAINER_RUNNING" -eq 0 ]; then
|
||||
|
||||
CONTAINER_RUNNING=$($COMPOSE_CMD ps | grep -c "$SERVICE_NAME.*Up" || true)
|
||||
if [ "$CONTAINER_RUNNING" -gt 0 ]; then
|
||||
echo "容器已就绪,共等待了 $TOTAL_WAIT 秒"
|
||||
echo "容器已就绪,共等待了 $TOTAL_WAIT 秒 | Container is ready, waited for $TOTAL_WAIT seconds in total"
|
||||
break
|
||||
else
|
||||
echo "容器尚未就绪,已等待 $TOTAL_WAIT 秒,继续等待..."
|
||||
echo "容器尚未就绪,已等待 $TOTAL_WAIT 秒,继续等待... | Container not ready yet, waited for $TOTAL_WAIT seconds, continuing to wait..."
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "$CONTAINER_RUNNING" -eq 0 ]; then
|
||||
echo "错误:容器启动超时,已等待 $MAX_WAIT_SECONDS 秒"
|
||||
echo "请检查Docker容器状态:$COMPOSE_CMD ps"
|
||||
echo "错误 | Error:容器启动超时,已等待 $MAX_WAIT_SECONDS 秒 | Container startup timeout, waited for $MAX_WAIT_SECONDS seconds"
|
||||
echo "请检查Docker容器状态 | Please check Docker container status:$COMPOSE_CMD ps"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# 检查容器中是否存在指定的Python命令
|
||||
echo "检查容器中的命令..."
|
||||
# 检查容器中是否存在指定的Python命令 | Check if specified Python command exists in container
|
||||
echo "检查容器中的命令... | Checking commands in container..."
|
||||
if ! $COMPOSE_CMD exec -T $SERVICE_NAME which $PYTHON_CMD &> /dev/null; then
|
||||
echo "警告:容器中未找到 $PYTHON_CMD 命令,尝试使用python替代"
|
||||
echo "警告 | Warning:容器中未找到 $PYTHON_CMD 命令,尝试使用python替代 | $PYTHON_CMD command not found in container, trying to use python instead"
|
||||
PYTHON_CMD="python"
|
||||
|
||||
# 检查python命令是否存在
|
||||
# 检查python命令是否存在 | Check if python command exists
|
||||
if ! $COMPOSE_CMD exec -T $SERVICE_NAME which python &> /dev/null; then
|
||||
echo "错误:容器中未找到python命令"
|
||||
echo "请检查容器配置"
|
||||
echo "错误 | Error:容器中未找到python命令 | python command not found in container"
|
||||
echo "请检查容器配置 | Please check container configuration"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# 在容器中运行指定的脚本,传递查询参数
|
||||
echo "在Docker容器中使用 $PYTHON_CMD 运行脚本..."
|
||||
# 在容器中运行指定的脚本,传递查询参数 | Run the specified script in container, passing query parameter
|
||||
echo "在Docker容器中使用 $PYTHON_CMD 运行脚本... | Running script in Docker container using $PYTHON_CMD..."
|
||||
|
||||
# 根据操作系统类型执行不同的命令
|
||||
# 根据操作系统类型执行不同的命令 | Execute different commands based on operating system type
|
||||
if [[ "$OS_TYPE" == MINGW* ]] || [[ "$OS_TYPE" == CYGWIN* ]] || [[ "$OS_TYPE" == MSYS* ]]; then
|
||||
# Windows可能需要特殊处理引号
|
||||
# Windows可能需要特殊处理引号 | Windows may need special handling for quotes
|
||||
winpty $COMPOSE_CMD exec -T $SERVICE_NAME $PYTHON_CMD $SCRIPT_NAME "$QUERY"
|
||||
RESULT=$?
|
||||
else
|
||||
# macOS 或 Linux
|
||||
# macOS 或 Linux | macOS or Linux
|
||||
$COMPOSE_CMD exec -T $SERVICE_NAME $PYTHON_CMD $SCRIPT_NAME "$QUERY"
|
||||
RESULT=$?
|
||||
fi
|
||||
|
||||
# 检查命令执行结果
|
||||
# 检查命令执行结果 | Check command execution result
|
||||
if [ $RESULT -eq 0 ]; then
|
||||
echo "查询完成!"
|
||||
echo "查询完成! | Query completed!"
|
||||
else
|
||||
echo "查询执行失败,请检查错误信息。"
|
||||
fi
|
||||
echo "查询执行失败,请检查错误信息。 | Query execution failed, please check error messages."
|
||||
fi
|
||||
Reference in New Issue
Block a user