mirror of
https://github.com/huggingface/lerobot.git
synced 2026-05-30 10:21:24 +00:00
72 lines
3.7 KiB
Docker
72 lines
3.7 KiB
Docker
|
|
# Copyright 2025 The HuggingFace Inc. team. All rights reserved.
|
||
|
|
#
|
||
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||
|
|
# you may not use this file except in compliance with the License.
|
||
|
|
# You may obtain a copy of the License at
|
||
|
|
#
|
||
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||
|
|
#
|
||
|
|
# Unless required by applicable law or agreed to in writing, software
|
||
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
|
|
# See the License for the specific language governing permissions and
|
||
|
|
# limitations under the License.
|
||
|
|
|
||
|
|
# Benchmark image for RoboCasa365 integration tests.
|
||
|
|
# Extends the nightly GPU image (which already has all extras installed)
|
||
|
|
# with the PR's source code and RoboCasa-specific asset setup.
|
||
|
|
#
|
||
|
|
# Build: docker build -f docker/Dockerfile.benchmark.robocasa -t lerobot-benchmark-robocasa .
|
||
|
|
# Run: docker run --gpus all --rm lerobot-benchmark-robocasa lerobot-eval ...
|
||
|
|
|
||
|
|
FROM huggingface/lerobot-gpu:latest
|
||
|
|
|
||
|
|
# Install robocasa + robosuite as editable clones. pip-installing from git
|
||
|
|
# omits data files like robocasa/models/assets/box_links/box_links_assets.json
|
||
|
|
# (not declared in package_data), which download_kitchen_assets needs at import.
|
||
|
|
#
|
||
|
|
# `--no-deps` on robocasa is deliberate: its setup.py pins `lerobot==0.3.3`
|
||
|
|
# in install_requires, which would shadow the editable lerobot baked into
|
||
|
|
# this image. We install robocasa's actual runtime deps explicitly instead.
|
||
|
|
# Pinned SHAs for reproducible benchmark runs. Bump when you need an
|
||
|
|
# upstream fix; don't rely on `main`/`master` drift.
|
||
|
|
ARG ROBOCASA_SHA=56e355ccc64389dfc1b8a61a33b9127b975ba681
|
||
|
|
ARG ROBOSUITE_SHA=aaa8b9b214ce8e77e82926d677b4d61d55e577ab
|
||
|
|
RUN git clone https://github.com/robocasa/robocasa.git ~/robocasa && \
|
||
|
|
git -C ~/robocasa checkout ${ROBOCASA_SHA} && \
|
||
|
|
git clone https://github.com/ARISE-Initiative/robosuite.git ~/robosuite && \
|
||
|
|
git -C ~/robosuite checkout ${ROBOSUITE_SHA} && \
|
||
|
|
uv pip install --no-cache -e ~/robocasa --no-deps && \
|
||
|
|
uv pip install --no-cache -e ~/robosuite && \
|
||
|
|
uv pip install --no-cache \
|
||
|
|
"numpy==2.2.5" "numba==0.61.2" "scipy==1.15.3" "mujoco==3.3.1" \
|
||
|
|
"pygame==2.6.1" "Pillow==12.2.0" "opencv-python==4.13.0.92" \
|
||
|
|
"pyyaml==6.0.3" "pynput==1.8.1" "tqdm==4.67.3" "termcolor==3.3.0" \
|
||
|
|
"imageio==2.37.3" "h5py==3.16.0" "lxml==6.0.4" "hidapi==0.14.0.post4" \
|
||
|
|
"tianshou==0.4.10" "gymnasium==1.2.3"
|
||
|
|
|
||
|
|
# Set up robocasa macros and download kitchen assets. We need:
|
||
|
|
# - tex : base environment textures
|
||
|
|
# - tex_generative : AI-generated textures; kitchen fixture XMLs embed
|
||
|
|
# refs to generative_textures/wall/tex*.png
|
||
|
|
# unconditionally, so MjModel.from_xml_string fails
|
||
|
|
# at reset time without them (even if the env is
|
||
|
|
# constructed with generative_textures=None).
|
||
|
|
# - fixtures_lw : lightwheel kitchen fixtures (fridge, counters...)
|
||
|
|
# - objs_lw : lightwheel object meshes (stools, misc props)
|
||
|
|
# We skip the objaverse/aigen object packs (~30GB combined) by pairing
|
||
|
|
# this with --env.obj_registries=["lightwheel"] on the lerobot side.
|
||
|
|
# The download script prompts interactively, so pipe 'y' to auto-accept.
|
||
|
|
RUN python -m robocasa.scripts.setup_macros && \
|
||
|
|
yes y | python -m robocasa.scripts.download_kitchen_assets \
|
||
|
|
--type tex tex_generative fixtures_lw objs_lw
|
||
|
|
|
||
|
|
# Overlay the PR's source code on top of the nightly image.
|
||
|
|
COPY --chown=user_lerobot:user_lerobot . .
|
||
|
|
|
||
|
|
# Re-install lerobot editably so the new source (with RoboCasaEnv registration)
|
||
|
|
# replaces the stale package baked into the nightly image.
|
||
|
|
RUN uv pip install --no-cache --no-deps -e .
|
||
|
|
|
||
|
|
CMD ["/bin/bash"]
|