diff --git a/docker/Dockerfile.benchmark.vlabench b/docker/Dockerfile.benchmark.vlabench index 0a5dbd6c7..ac5843afe 100644 --- a/docker/Dockerfile.benchmark.vlabench +++ b/docker/Dockerfile.benchmark.vlabench @@ -41,11 +41,30 @@ p.write_text(t.replace( \ mujoco==3.2.2 dm-control==1.0.22 \ open3d colorlog scikit-learn openai gdown -# Download VLABench mesh assets from Google Drive. Task configs reference -# object meshes (obj/meshes/fruit/, containers/basket/, etc.); without them -# the task builder crashes with IndexError on random.choice([]). -# gdown handles Google Drive's confirmation tokens for large files. -RUN python ~/VLABench/scripts/download_assets.py --choice all +# Download VLABench mesh assets. Task configs reference object meshes +# (obj/meshes/fruit/, containers/basket/, etc.); without them the task builder +# picks from an empty mesh list and crashes at task-build time. +# +# Preferred source: an HF Hub mirror. Set VLABENCH_ASSETS_REPO at build time +# (e.g. --build-arg VLABENCH_ASSETS_REPO=lerobot/vlabench-assets) and we'll +# snapshot_download the repo into VLABench's assets dir. This is the reliable +# path for CI — Google Drive frequently returns HTTP 429 ("Too many users have +# viewed or downloaded this file recently") on shared academic files. +# +# Fallback: VLABench's own gdown-based script. Best-effort only; the build +# will NOT fail if gdown hits a Drive quota, letting us ship an image where +# task-build may still IndexError but the rest of the pipeline is exercised. +ARG VLABENCH_ASSETS_REPO="" +RUN ASSETS_DIR="$HOME/VLABench/VLABench/assets" && \ + if [ -n "${VLABENCH_ASSETS_REPO}" ]; then \ + echo "Downloading VLABench assets from HF Hub: ${VLABENCH_ASSETS_REPO}" && \ + python -c "from huggingface_hub import snapshot_download; \ +snapshot_download(repo_id='${VLABENCH_ASSETS_REPO}', repo_type='dataset', local_dir='${ASSETS_DIR}')"; \ + else \ + echo "No VLABENCH_ASSETS_REPO set — falling back to gdown (best-effort)" && \ + python ~/VLABench/scripts/download_assets.py --choice all || \ + echo "WARN: VLABench asset download failed (likely Google Drive quota). Env task-build may crash."; \ + fi # Overlay the PR's source code on top of the nightly image. COPY --chown=user_lerobot:user_lerobot . .