Conteneur de développement

VérifiéPrudence

Configure et gère le conteneur Docker isaaclab_arena pour le développement, les tests et l'évaluation. Détaille les commandes start, attach, rebuild et les flags.

Spar Skills Guide Bot
DevOpsIntermédiaire
25/07/2026
Claude Code
#docker#dev-environment#container-management#isaac-sim#workspace-setup

Recommandé pour

Synthèse automatique

Gère le conteneur Docker unique d'IsaacLab-Arena, utilisé à la fois pour le développement, les tests, l'entraînement et l'évaluation, en résolvant le nom du conteneur propre à chaque clone du dépôt.

Points forts

  • Explique comment retrouver le conteneur associé au clone courant via un filtre Docker sur le volume monté, au lieu de coder le nom en dur.
  • Documente les combinaisons d'options de ./docker/run_docker.sh, notamment -r/-R pour reconstruire l'image et -d/-m/-e pour monter des répertoires de datasets, modèles ou évaluations.
  • Fournit la commande docker exec exacte avec su et cd vers /workspaces/isaaclab_arena pour exécuter des commandes dans un conteneur déjà lancé.
  • Rappelle d'invoquer explicitement /isaac-sim/python.sh depuis l'extérieur du conteneur, où l'alias python n'est pas actif.

Limites

  • Très spécifique au dépôt IsaacLab-Arena et à son script ./docker/run_docker.sh ; difficilement transposable à un autre projet.
  • Ne couvre ni le dépannage des erreurs de build d'image, ni la gestion des ressources GPU ou des permissions autres que celles décrites.
  • Suppose que l'utilisateur dispose déjà de Docker et des droits nécessaires sur l'hôte.
Quand l'utiliser

À utiliser dès qu'il faut initialiser, démarrer, reconstruire ou exécuter une commande dans l'environnement de développement conteneurisé d'IsaacLab-Arena.

Quand l'éviter

À éviter pour du travail sur un autre projet, ou lorsqu'on cherche des instructions d'installation hors Docker ou de résolution de problèmes d'infrastructure.

Analyse de sécurité

Prudence
Score qualité88/100

The skill manages a legitimate Docker-based development environment with no destructive or exfiltrating instructions. However, it relies on powerful Docker execution and host directory mounts, which warrants caution even though the stated use is legitimate and scoped to the project.

Points d'attention
  • •Uses docker exec to run arbitrary commands inside a container, which could execute unintended commands if user input is substituted without validation.
  • •The run_docker.sh script supports mounting arbitrary host directories (-d, -m, -e), granting container access to host paths.
Comment cette analyse est faite

Exemples

Fresh clone bootstrap
I just cloned IsaacLab-Arena on a new machine. Set up the dev environment and confirm the isaaclab_arena package imports.
Rebuild image without cache
Rebuild the isaaclab_arena image from scratch without cache, then attach me to this clone's container.
Run a command in the running container
Start the container with my datasets in ~/datasets and models in ~/models, then run the training script inside it.

name: dev-container description: Sets up and manages the isaaclab_arena Docker container — the single environment used for Arena's development, testing, training, and evaluation. Use when the user asks to set up the dev environment, bootstrap the project, get started on a fresh clone, start developing, build or rebuild the image, start or attach to the container, or run any command inside it. Also covers ./docker/run_docker.sh flag combinations (-r rebuild, -R rebuild without cache, -d/-m/-e custom dataset/model/eval mounts), docker exec usage, and the /isaac-sim/python.sh aliasing. allowed-tools: Bash(./docker/run_docker.sh *) Bash(docker exec *) Bash(docker images *) Bash(docker ps *)

Dev Container

Arena uses a single Docker container as the dev, test, training, and eval environment. There is no separate dev container.

Each clone of the repo on the host machine gets its own container, so separate clones can run in parallel. The image (isaaclab_arena:latest) is shared, but the container name is isaaclab_arena-latest for the folder named IsaacLab-Arena and isaaclab_arena-latest-<suffix> for folders named IsaacLab-Arena_<suffix> (run_docker.sh derives the suffix automatically).

Discover this clone's container (once per session)

Never hardcode the name. At the start of a session, resolve the container mounting this clone into ARENA_CONTAINER (empty result = none running, so start one below):

ARENA_CONTAINER=$(docker ps --filter "volume=$(git rev-parse --show-toplevel)" --format '{{.Names}}' | head -1)

Run the commands below in that same shell so $ARENA_CONTAINER stays set (or substitute the literal name).

Start or attach

./docker/run_docker.sh

Idempotent: builds the (shared) image if it does not exist, starts this clone's container if it is not running, then attaches. The container name is auto-derived from the clone directory; pass -s <suffix> to override it.

Common flag combinations

| Flag | Purpose | |---|---| | -r | Force image rebuild | | -R | Force image rebuild without cache | | -d <path> | Mount a custom dataset directory | | -m <path> | Mount a custom model directory | | -e <path> | Mount a custom eval directory |

Example with custom mounts:

./docker/run_docker.sh -d ~/datasets -m ~/models -e ~/eval

Run a command in the already-running container

docker exec "$ARENA_CONTAINER" su $(id -un) -c \
  "cd /workspaces/isaaclab_arena && <command>"

The repo root is mounted at /workspaces/isaaclab_arena inside the container.

Python invocation

Inside the container, python is aliased to /isaac-sim/python.sh. Both forms work, but prefer /isaac-sim/python.sh explicitly in docker exec invocations from outside the container, where the alias is not active.

Verify

A container is up and importable when:

docker exec "$ARENA_CONTAINER" su $(id -un) -c \
  "/isaac-sim/python.sh -c 'import isaaclab_arena; print(isaaclab_arena.__file__)'"

prints a path under /workspaces/isaaclab_arena/.

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/dev-container-mrzxupk5/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

mkdir -p '.skill-downloads/dev-container-mrzxupk5' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/dev-container-mrzxupk5/download' --output '.skill-downloads/dev-container-mrzxupk5/SKILL.md.part' && mv '.skill-downloads/dev-container-mrzxupk5/SKILL.md.part' '.skill-downloads/dev-container-mrzxupk5/SKILL.md'

2. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Outils déclarés par l’auteur (à vérifier dans votre agent) : Bash(./docker/run_docker.sh *) Bash(docker exec *) Bash(docker images *) Bash(docker ps *)

Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.

Claude Code
test -f '.skill-downloads/dev-container-mrzxupk5/SKILL.md' && test -s '.skill-downloads/dev-container-mrzxupk5/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/dev-container' && cp -R '.skill-downloads/dev-container-mrzxupk5' '.claude/skills/dev-container'

OpenSkills

OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.

Installation officielle d’OpenSkills
openskills install './.skill-downloads/dev-container-mrzxupk5'

openskills read 'dev-container-mrzxupk5'

La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.

Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.

openskills sync

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/dev-container-mrzxupk5/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires