Remove docker pull fallback for sandbox images; use ModelScope only
This commit is contained in:
parent
991a4a5f7f
commit
6cb82bbc61
56
README.md
56
README.md
@ -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
|
||||
```
|
||||
|
||||
验证:
|
||||
|
||||
@ -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 镜像包(可选)
|
||||
# --------------------------------------------------
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user