orbit.ext_template
orbit.ext_template copied to clipboard
Enhance Docker workflow with unified mount system and improved cluster operations
Summary
This PR introduces a unified mount configuration system for Docker containers and enhances cluster deployment workflows, making it easier to develop with external IsaacLab/RSL-RL installations and deploy to HPC clusters.
Key Features
1. Unified Mount Configuration System
- New
mount-setupwizard for interactive configuration of external codebase mounts - Support for mounting external IsaacLab and RSL-RL installations into containers
- Automatic generation of
docker-compose.override.yamlfrom.mount.config - Commands:
mount-enable,mount-disable,mount-set,mount-show
2. Enhanced Cluster Operations
- Automatic mount synchronization: Local mount configurations are automatically applied on cluster
-
Two mount modes:
- Sync mode: Automatically syncs local codebase to cluster
- Mount-only mode: Uses existing codebase on cluster without syncing
-
Dynamic path expansion: Support for environment variables like
$CLUSTER_USERin mount paths - Improved argument passing: Fixed script arguments being properly passed through SSH and job schedulers
3. Developer Experience Improvements
- New
run_dev.shscript for quick development container access -
--rootlessflag for environments without root Docker access -
--fix-permsflag to automatically fix file ownership issues - Better error handling and debug output for troubleshooting
4. Documentation Updates
- Comprehensive Docker setup guide with quick start section
- Detailed cluster operations guide with mount configuration examples
- Troubleshooting sections for common issues
- Migration guide from previous container setups
Usage Examples
# Configure external mounts interactively
./docker/container.sh mount-setup
# Quick development access
./docker/run_dev.sh
# Run on university PC without root
./docker/run_dev.sh --rootless
# Deploy to cluster with external mounts
cd docker/cluster
./cluster_interface.sh push ext_template
./cluster_interface.sh job ext_template --task MyTask --num_envs 32000