- scripts/build_and_upload_docker.sh: sync context, build, save and upload evalscope-complete-py312 image to ModelScope. - scripts/deploy_remote_machine.sh: SSH to a fresh machine and run install.sh. - scripts/run_multi_machine.sh: distribute official-suite benchmarks across 3 machines (gpu048, gpu049, gpu051).
67 lines
1.9 KiB
Bash
Executable File
67 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
# ============================================================
|
|
# 构建并上传 evalscope-complete-py312 Docker 镜像
|
|
# 用法: bash scripts/build_and_upload_docker.sh
|
|
# ============================================================
|
|
|
|
set -euo pipefail
|
|
|
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
DOCKER_CTX="$ROOT_DIR/tools/docker"
|
|
IMAGE_TAG="evalscope-complete-py312:latest"
|
|
OUTPUT_TAR="$ROOT_DIR/docker/evalscope-complete-py312.tar.gz"
|
|
LOG_FILE="$ROOT_DIR/logs/build_docker_$(date +%Y%m%d_%H%M%S).log"
|
|
|
|
mkdir -p "$ROOT_DIR/logs"
|
|
mkdir -p "$ROOT_DIR/docker"
|
|
|
|
exec > >(tee -a "$LOG_FILE")
|
|
exec 2>&1
|
|
|
|
echo "==> 开始构建 Docker 镜像: $IMAGE_TAG"
|
|
echo " 日志: $LOG_FILE"
|
|
echo ""
|
|
|
|
# 1. 同步构建上下文
|
|
echo "==> 1. 同步构建上下文到 $DOCKER_CTX"
|
|
cd "$ROOT_DIR"
|
|
rsync -av --delete --exclude='*.log' --exclude='__pycache__' --exclude='.git' \
|
|
bash/ "$DOCKER_CTX/bash/"
|
|
rsync -av --delete --exclude='*.log' --exclude='__pycache__' --exclude='.git' \
|
|
evalscope/ "$DOCKER_CTX/evalscope/"
|
|
rsync -av --delete --exclude='*.log' --exclude='__pycache__' --exclude='.git' \
|
|
tools/tau2-bench/ "$DOCKER_CTX/tau2-bench/"
|
|
|
|
# 2. 构建镜像
|
|
echo ""
|
|
echo "==> 2. 构建 Docker 镜像"
|
|
cd "$DOCKER_CTX"
|
|
docker build -f Dockerfile.py312 -t "$IMAGE_TAG" .
|
|
|
|
# 3. 保存镜像
|
|
echo ""
|
|
echo "==> 3. 保存镜像到 $OUTPUT_TAR"
|
|
docker save "$IMAGE_TAG" | gzip > "$OUTPUT_TAR"
|
|
ls -lh "$OUTPUT_TAR"
|
|
|
|
# 4. 生成 md5
|
|
echo ""
|
|
echo "==> 4. 生成 md5"
|
|
md5sum "$OUTPUT_TAR" > "$OUTPUT_TAR.md5"
|
|
|
|
# 5. 上传到 ModelScope
|
|
echo ""
|
|
echo "==> 5. 上传到 ModelScope"
|
|
modelscope upload \
|
|
--commit-message "Update evalscope-complete-py312 with torch (CPU) for tokenizer support" \
|
|
SoraAmami/evalscope-docker \
|
|
"$OUTPUT_TAR"
|
|
|
|
echo ""
|
|
echo "========================================"
|
|
echo "构建并上传完成!"
|
|
echo "镜像: $IMAGE_TAG"
|
|
echo "本地 tar: $OUTPUT_TAR"
|
|
echo "日志: $LOG_FILE"
|
|
echo "========================================"
|