update: dockerfile rheo - #230
Conversation
Greptile SummaryThis PR updates the Rheo workflow Dockerfile with a heavily refactored IsaacLab installation strategy (granular pinned-version pip installs, WebRTC deps, removed jupyter/typing_extensions), expands PYTHONPATH to include the
Confidence Score: 5/5Safe to merge; all findings are style-level suggestions with no impact on runtime correctness. The Dockerfile refactor is well-commented and the pinned-version approach is more reproducible than the previous isaaclab.sh -i. The new Python scripts are logically correct and well-structured. No logic errors, security issues, or breaking changes were found. The accidentally committed workflows/rheo/docs/.$controle.drawio.bkp backup file is worth cleaning up before or after merge. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A["LeRobot Dataset\n(meta/, data/, videos/)"] --> B["validator.py\n--check-videos"]
B -->|"PASS"| C["lerobot_to_hdf5.py"]
C --> D["dataset.hdf5\n(obs/actions, obs/joint_pos,\nobs/camera)"]
D --> E["workflows/agentic/cosmos/run.sh\n--run-cosmos"]
E --> F["Cosmos Transfer 2.5\n(Docker, GPU)"]
F --> G["cosmos.hdf5\n(augmented demos)"]
G --> H["workflows/agentic/dataset/run.sh"]
H --> I["LeRobot expanded\n(local/real_ur_cosmos)"]
I --> J["validator.py\n--check-videos (revalidate)"]
K["trigger_menu.sh\ncurl POST :8081"] --> L["triggered_policy_runner\n:8081/trigger"]
L --> M["GR00T Policy\nIsaac Sim"]
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
A["LeRobot Dataset\n(meta/, data/, videos/)"] --> B["validator.py\n--check-videos"]
B -->|"PASS"| C["lerobot_to_hdf5.py"]
C --> D["dataset.hdf5\n(obs/actions, obs/joint_pos,\nobs/camera)"]
D --> E["workflows/agentic/cosmos/run.sh\n--run-cosmos"]
E --> F["Cosmos Transfer 2.5\n(Docker, GPU)"]
F --> G["cosmos.hdf5\n(augmented demos)"]
G --> H["workflows/agentic/dataset/run.sh"]
H --> I["LeRobot expanded\n(local/real_ur_cosmos)"]
I --> J["validator.py\n--check-videos (revalidate)"]
K["trigger_menu.sh\ncurl POST :8081"] --> L["triggered_policy_runner\n:8081/trigger"]
L --> M["GR00T Policy\nIsaac Sim"]
Reviews (4): Last reviewed commit: "Script Syntetic Data" | Re-trigger Greptile |
| RUN /isaac-sim/python.sh -c "import isaaclab; print(isaaclab.__file__)" | ||
| # Build deps and apt packages required by Isaac Lab extensions (see IsaacLab/docker/Dockerfile.base) | ||
| RUN ${ISAACLAB_PATH}/isaaclab.sh -p -m pip install toml | ||
| RUN ${ISAACLAB_PATH}/isaaclab.sh -p ${ISAACLAB_PATH}/tools/install_deps.py apt ${ISAACLAB_PATH}/source |
There was a problem hiding this comment.
apt-get update missing before install_deps.py apt
install_deps.py apt will call apt-get install internally, but apt-get update ran in a separate, earlier RUN layer. Docker's layer cache means that if IsaacLab is updated (invalidating the COPY layer), this step runs against stale apt metadata from the cached apt-get update layer. If any package required by install_deps.py has been updated or moved in the apt repository since that cached update, the build will fail with a E: Unable to locate package error. Running apt-get update in the same RUN instruction as any apt-get install call is the standard fix.
| RUN ${ISAACLAB_PATH}/isaaclab.sh -p -m pip install --no-build-isolation --prefer-binary \ | ||
| pytest \ | ||
| jupyter \ | ||
| typing_extensions==4.12.2 \ | ||
| onnxruntime | ||
|
|
||
| # lwlabs deps | ||
| RUN /isaac-sim/python.sh -m pip install --upgrade pip && \ | ||
| /isaac-sim/python.sh -m pip install \ | ||
| onnxruntime \ | ||
| vuer[all] \ | ||
| lightwheel-sdk | ||
| lightwheel-sdk \ | ||
| aiohttp \ | ||
| av==12.3.0 \ | ||
| aiortc==1.10.1 && \ | ||
| ${ISAACLAB_PATH}/isaaclab.sh -p -m pip install --force-reinstall --no-deps pip==24.3.1 |
There was a problem hiding this comment.
vuer[all] may transitively install typing_extensions or jupyter
Line 119-120 explicitly states that typing_extensions and jupyter must not be installed here because they pull in a standalone packaging library that breaks pip's vendored copy inside the kit Python. However, vuer[all] is installed without pinned extras and without --no-deps, so if vuer's [all] extras declare a dependency on either package, those packages will be installed transitively — defeating the intent of the comment. Consider auditing vuer[all]'s dependency tree for these packages, or switching to a tighter extras selection that excludes notebook/Jupyter dependencies.
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
Fixes #ISSUE_NUMBER
Description