evalstone/scripts/build_and_upload_docker.sh
sora 5ab3f249c6 Add deployment and multi-machine benchmark scripts
- 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).
2026-07-28 02:34:46 +00:00

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 "========================================"