Docker build stages and helper scripts - #1280
Conversation
Add runtime and developer targets with optional prebuilt cuRobo wheels. Keep dependency installation and cuRobo compilation cached across Arena source edits, and share build/setup scripts. Validate all four targets locally. Record the AGILE standing and GUI preview failures, both reproduced on the original image; committing with these baseline failures is approved. CI integration remains deferred. Signed-off-by: David Tingdahl <dtingdahl@nvidia.com>
Signed-off-by: David Tingdahl <dtingdahl@nvidia.com>
Signed-off-by: David Tingdahl <dtingdahl@nvidia.com>
Share the build helper between local and NGC builds. Select dev-curobo with -c, preserve explicit output tags, and document the current stage layout and pending validation. Signed-off-by: David Tingdahl <dtingdahl@nvidia.com>
|
🤖 Isaac Lab-Arena Review BotSummaryRestructures the Arena Dockerfile into named stages so dependency installation and cuRobo compilation no longer rebuild on Arena source edits, and factors the inline Design, Boundaries & ScopeThe Related: Findings🟡 Warning: Two things that don't map to a diff line:
Test CoverageNo unit tests are expected for Docker plumbing, but it's worth being explicit about the gap: CI runs its test phases inside the published VerdictMinor fixes needed |
Share target tags across build, launch, and publish commands. Remove the unused log-file option and ineffective duplicate pytest alias. Explain the cuRobo build record as human-readable provenance. Signed-off-by: David Tingdahl <dtingdahl@nvidia.com>
Signed-off-by: David Tingdahl <dtingdahl@nvidia.com>
Signed-off-by: David Tingdahl <dtingdahl@nvidia.com>
alexmillane
left a comment
There was a problem hiding this comment.
Amazing! Thank you for cleaning that up!
Re-organize the Arena images builds using docker build stages and dedicated helper scripts for installing.
User-facing docker scripts remain the same as before
Why this change?
.tomldeps are now installed in the arena-deps stage)The perceived speedups are moderate for dev not using cuRobo. Main advantage is the structured docker build with existing patterns to follow for future modifications of the dockerfile.
What changes?
devextra frompyproject.toml, and move installation commands into focused setup scripts.build_docker.shfor builds without launching a container. Share it between the launcher and NGC publisher. Preserve the default developer image and-cshortcut; replaceINSTALL_CUROBOwithdevanddev-curobotargets.CI still tests the published images. Building branch images before tests and adding remote-cache integration remain separate work.
Usage example
Replace the old feature argument in direct Docker builds.
Before:
docker build -f docker/Dockerfile.isaaclab_arena \ --build-arg INSTALL_CUROBO=true -t isaaclab_arena:curobo .After:
docker build -f docker/Dockerfile.isaaclab_arena \ --target dev-curobo -t isaaclab_arena:curobo .The existing
./docker/run_docker.sh -cand./docker/push_to_ngc.sh -c -pcommands remain supported and select the cuRobo developer image. Without-c, both scripts default to the developer image without cuRobo.