fix(docker): download VLABench mesh assets (required for tasks)

Task configs reference object meshes (obj/meshes/fruit/, containers/*)
via name2class_xml; without them, random.choice([]) crashes during
task build. Install gdown and run VLABench's download_assets.py script
to fetch the asset + scene archives from Google Drive.

Made-with: Cursor
This commit is contained in:
Pepijn
2026-04-16 20:22:13 +02:00
parent 07b0ad8831
commit 5161d06f32
+10 -5
View File
@@ -24,11 +24,10 @@ FROM huggingface/lerobot-gpu:latest
# Shallow-clone without submodule recursion (nested SSH-only submodules fail in CI).
# Editable install (-e) because VLABench/utils/ has no __init__.py, so
# find_packages() omits it from wheels; editable mode uses the source tree directly.
# Asset download (Google Drive via gdown) is skipped — unreliable in CI and not
# needed for our smoke test which uses its own eval pipeline.
# rrt-algorithms has the same packaging issue (rrt/ dir missing __init__.py).
# Patch: constant.py calls os.listdir on ~100 asset/obj/meshes/* dirs at import
# time; those dirs only exist after the Google Drive download. We guard the call
# so missing dirs return [] instead of crashing.
# time. Guard the call so missing dirs return [] instead of crashing (in case
# the asset download is partial).
RUN git clone --depth 1 https://github.com/OpenMOSS/VLABench.git ~/VLABench && \
git clone --depth 1 https://github.com/motion-planning/rrt-algorithms.git ~/rrt-algorithms && \
python3 -c "\
@@ -40,7 +39,13 @@ p.write_text(t.replace( \
'if not os.path.isdir(xml_dir): return []\n subdirs = os.listdir(xml_dir)'))" && \
uv pip install --no-cache -e ~/VLABench -e ~/rrt-algorithms \
mujoco==3.2.2 dm-control==1.0.22 \
open3d colorlog scikit-learn openai
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
# Overlay the PR's source code on top of the nightly image.
COPY --chown=user_lerobot:user_lerobot . .