Remove docker pull fallback for sandbox images; use ModelScope only

This commit is contained in:
sora 2026-07-27 05:43:39 +00:00
parent 991a4a5f7f
commit 6cb82bbc61
2 changed files with 23 additions and 74 deletions

View File

@ -115,31 +115,25 @@ sudo systemctl start docker
docker load -i /data1/sora/evalscope/docker/evalscope-complete-py312.tar.gz
# 5. 准备代码执行 sandbox 镜像humaneval / bigcodebench 必须)
# 推荐:从 ModelScope 下载预打包的 sandbox 镜像(避免 DockerHub 限流/超时)
# 从 ModelScope 下载预打包的 sandbox 镜像(避免 DockerHub 限流/超时)
python3 -c "
from modelscope.hub.file_download import model_file_download
model_file_download(
model_id='SoraAmami/evalscope-sandbox-images',
file_path='bigcodebench-sandbox.tar.gz',
from modelscope_hub import HubApi
api = HubApi()
api.download_file(
repo_id='SoraAmami/evalscope-sandbox-images',
repo_type='dataset',
path='bigcodebench-sandbox.tar.gz',
local_dir='/data1/sora/evalscope/docker/sandbox_images'
)
model_file_download(
model_id='SoraAmami/evalscope-sandbox-images',
file_path='python-3.11-slim.tar.gz',
api.download_file(
repo_id='SoraAmami/evalscope-sandbox-images',
repo_type='dataset',
path='python-3.11-slim.tar.gz',
local_dir='/data1/sora/evalscope/docker/sandbox_images'
)
"
docker load -i /data1/sora/evalscope/docker/sandbox_images/bigcodebench-sandbox.tar.gz
docker load -i /data1/sora/evalscope/docker/sandbox_images/python-3.11-slim.tar.gz
# 备选:如果 ModelScope 下载失败,再尝试从 DockerHub / 镜像站拉取
# docker pull bigcodebench/bigcodebench-evaluate:latest
# docker build -t bigcodebench-sandbox:latest -f - . <<'EOF'
# FROM bigcodebench/bigcodebench-evaluate:latest
# ENTRYPOINT []
# CMD ["tail", "-f", "/dev/null"]
# EOF
# docker pull python:3.11-slim
```
验证:
@ -197,31 +191,25 @@ sudo systemctl start docker
docker load -i /data1/sora/evalscope/docker/evalscope-complete-py312.tar.gz
# 7. 准备代码执行 sandbox 镜像
# 推荐:从 ModelScope 下载预打包的 sandbox 镜像(避免 DockerHub 限流/超时)
# 从 ModelScope 下载预打包的 sandbox 镜像(避免 DockerHub 限流/超时)
python3 -c "
from modelscope.hub.file_download import model_file_download
model_file_download(
model_id='SoraAmami/evalscope-sandbox-images',
file_path='bigcodebench-sandbox.tar.gz',
from modelscope_hub import HubApi
api = HubApi()
api.download_file(
repo_id='SoraAmami/evalscope-sandbox-images',
repo_type='dataset',
path='bigcodebench-sandbox.tar.gz',
local_dir='/data1/sora/evalscope/docker/sandbox_images'
)
model_file_download(
model_id='SoraAmami/evalscope-sandbox-images',
file_path='python-3.11-slim.tar.gz',
api.download_file(
repo_id='SoraAmami/evalscope-sandbox-images',
repo_type='dataset',
path='python-3.11-slim.tar.gz',
local_dir='/data1/sora/evalscope/docker/sandbox_images'
)
"
docker load -i /data1/sora/evalscope/docker/sandbox_images/bigcodebench-sandbox.tar.gz
docker load -i /data1/sora/evalscope/docker/sandbox_images/python-3.11-slim.tar.gz
# 备选:如果 ModelScope 下载失败,再尝试从 DockerHub / 镜像站拉取
# docker pull bigcodebench/bigcodebench-evaluate:latest
# docker build -t bigcodebench-sandbox:latest -f - . <<'EOF'
# FROM bigcodebench/bigcodebench-evaluate:latest
# ENTRYPOINT []
# CMD ["tail", "-f", "/dev/null"]
# EOF
# docker pull python:3.11-slim
```
验证:

View File

@ -136,25 +136,7 @@ fi
SANDBOX_IMAGES_DIR="$DOCKER_DIR/sandbox_images"
mkdir -p "$SANDBOX_IMAGES_DIR"
# 函数:带超时拉取镜像,本地已有则跳过
pull_with_timeout() {
local image="$1"
local timeout_sec="${2:-600}"
if docker images --format '{{.Repository}}:{{.Tag}}' | grep -qx "$image"; then
echo "镜像 $image 已存在,跳过 pull"
return 0
fi
echo "拉取 $image (超时 ${timeout_sec}s)..."
if timeout "$timeout_sec" docker pull "$image"; then
echo "$image 拉取成功"
return 0
else
echo "警告:$image 拉取失败或超时"
return 1
fi
}
# 优先从 ModelScope 下载预打包的 sandbox 镜像,避免 DockerHub 拉取慢/失败
# 从 ModelScope 下载预打包的 sandbox 镜像(不再使用 docker pull避免 DockerHub 限速)
download_sandbox_image_from_modelscope() {
local file="$1"
if [ -f "$SANDBOX_IMAGES_DIR/$file" ]; then
@ -208,27 +190,6 @@ if ! docker images --format '{{.Repository}}:{{.Tag}}' | grep -qx "python:3.11-s
fi
fi
# 9.3 fallback如果 ModelScope 失败,尝试从 DockerHub / 镜像站拉取
if ! docker images --format '{{.Repository}}:{{.Tag}}' | grep -qx "bigcodebench-sandbox:latest"; then
echo "==> 尝试 fallback拉取 bigcodebench 基础镜像并构建 sandbox..."
pull_with_timeout "bigcodebench/bigcodebench-evaluate:latest" 600 || true
if docker images --format '{{.Repository}}:{{.Tag}}' | grep -qx "bigcodebench/bigcodebench-evaluate:latest"; then
echo "==> 构建 bigcodebench-sandbox..."
mkdir -p /tmp/bigcodebench-sandbox-ctx
docker build -t bigcodebench-sandbox:latest -f - /tmp/bigcodebench-sandbox-ctx <<'EOF' || echo "警告bigcodebench-sandbox 构建失败"
FROM bigcodebench/bigcodebench-evaluate:latest
ENTRYPOINT []
CMD ["tail", "-f", "/dev/null"]
EOF
else
echo "警告bigcodebench 基础镜像不存在,跳过 bigcodebench-sandbox 构建"
fi
fi
if ! docker images --format '{{.Repository}}:{{.Tag}}' | grep -qx "python:3.11-slim"; then
pull_with_timeout "python:3.11-slim" 300 || true
fi
# --------------------------------------------------
# 10. 下载 SWE-Bench 镜像包(可选)
# --------------------------------------------------