Passer à la navigation

Construire des Images Docker

Afficher en Markdown

Ce guide fournit deux méthodes pour construire des images Docker :

  • release : Contient tout de l’image hermétique, plus le code source nemo-rl et les environnements virtuels pré-récupérés pour les workers isolés.
  • hermetic : Inclut l’image de base plus les packages Python NeMo RL pré-récupérés dans le cache uv.

Utilisez :

  • release (recommandé) : si vous voulez pré-récupérer les environnements virtuels worker NeMo RL et copier le code source du projet.
  • hermetic : si vous voulez pré-récupérer les packages Python NeMo RL dans le cache uv pour éliminer la surcharge initiale du démarrage du programme.

Image Release

L’image release est notre option recommandée car elle fournit l’environnement le plus complet. Elle inclut tout de l’image hermétique, plus le code source nemo-rl et les environnements virtuels pré-récupérés pour les workers isolés. C’est le choix idéal pour les déploiements en production.

# Build auto-contenu (défaut : construit à partir de main) :
docker buildx build --target release -f docker/Dockerfile --tag <registry>/nemo-rl:latest --push .
# Build auto-contenu (référence git spécifique) :
docker buildx build --target release -f docker/Dockerfile --build-arg NRL_GIT_REF=r0.3.0 --tag <registry>/nemo-rl:r0.3.0 --push .
# Build auto-contenu (source NeMo RL distante ; pas besoin d'un clone local de NeMo RL) :
docker buildx build --target release -f docker/Dockerfile --build-arg NRL_GIT_REF=r0.3.0 --tag <registry>/nemo-rl:r0.3.0 --push https://github.com/NVIDIA-NeMo/RL.git
# Remplacement de la source NeMo RL locale :
docker buildx build --target release --build-context nemo-rl=. -f docker/Dockerfile --tag <registry>/nemo-rl:latest --push .

Remarque : Les flags --tag <registry>/nemo-rl:latest --push ne sont pas nécessaires si vous voulez simplement construire localement.

Image Hermétique

L’image hermétique inclut toutes les dépendances Python pré-téléchargées dans le cache uv, éliminant la surcharge initiale du téléchargement des packages à l’exécution. Cela est utile lorsque vous avez besoin d’un environnement plus prévisible ou avez une connectivité réseau limitée.

# Build auto-contenu (défaut : construit à partir de main) :
docker buildx build --target hermetic -f docker/Dockerfile --tag <registry>/nemo-rl:latest --push .
# Build auto-contenu (référence git spécifique) :
docker buildx build --target hermetic -f docker/Dockerfile --build-arg NRL_GIT_REF=r0.3.0 --tag <registry>/nemo-rl:r0.3.0 --push .
# Build auto-contenu (source NeMo RL distante ; pas besoin d'un clone local de NeMo RL) :
docker buildx build --target hermetic -f docker/Dockerfile --build-arg NRL_GIT_REF=r0.3.0 --tag <registry>/nemo-rl:r0.3.0 --push https://github.com/NVIDIA-NeMo/RL.git
# Remplacement de la source NeMo RL locale :
docker buildx build --target hermetic --build-context nemo-rl=. -f docker/Dockerfile --tag <registry>/nemo-rl:latest --push .

Remarque : Les flags --tag <registry>/nemo-rl:latest --push ne sont pas nécessaires si vous voulez simplement construire localement.