Utilisez Docker YAML pour compiler et pousser des images Docker vers Azure Container Registry.
Azure DevOps Services
Ce tutoriel vous montre comment utiliser un pipeline basé sur un modèle Docker d’Azure Pipelines pour compiler une application conteneurisée et la pousser vers Azure Container Registry. Le modèle configure un pipeline YAML d’intégration continue où les nouveaux changements dans le référentiel de code déclenchent le pipeline pour compiler et publier les images Docker mises à jour dans le registre.
Le pipeline de modèle de conteneur Docker utilise des agents hébergés par Microsoft et crée une connexion de service basée sur un principal de service vers Azure Container Registry. Pour un pipeline qui effectue un processus similaire en utilisant des agents auto-hébergés et une connexion de service que vous créez vous-même, veuillez consulter la section Générer et envoyer (push) des images Docker à Azure Container Registry.
Prérequis
Un compte Azure où vous avez la permission de créer et configurer des ressources. Si vous n’avez pas de compte Azure, inscrivez-vous pour un compte gratuit.
Une organisation et un projet Azure DevOps où vous avez la permission de créer des pipelines et de déployer des applications. Pour créer une organisation ou un projet, veuillez consulter la section Créer une organisation ou Créer un projet dans Azure DevOps.
Un compte GitHub.
Important
Lorsque vous utilisez GitHub dans les procédures suivantes, vous pourriez être invité à créer une connexion de service GitHub, à vous connecter à GitHub, à vous authentifier auprès des organisations GitHub, à installer Azure Pipelines ou à autoriser Azure Pipelines. Suivez les instructions à l’écran pour compléter le processus. Pour plus d’informations, veuillez consulter la section Accès aux référentiels GitHub.
Obtenir l’exemple d’application
Dans GitHub, fork ou clonez le référentiel Sample Docker et Kubernetes Node.JS app.
Créer un registre de conteneur
Depuis le portail Azure, connectez-vous à Azure Cloud Shell en sélectionnant l’icône dans la barre de menu supérieure. Assurez-vous d’utiliser le shell Bash.
Dans le Cloud Shell, exécutez les commandes suivantes pour créer un groupe de ressources et un Azure container registry en utilisant l’interface de ligne de commande Azure (CLI Azure). Le nom du Container Registry doit être en minuscules.
az group create --name myapp-rg --location eastus az acr create --resource-group myapp-rg --name mycontainerregistry --sku Basic
Pour déployer une image Docker dans le Azure container registry, vous devez activer le compte d’utilisateur administrateur pour le registre, qui est désactivé par défaut. Pour activer l’utilisateur administrateur de votre registre, utilisez le
--admin-enabled
paramètre avec la commandeaz acr update
. Pour plus d’informations et d’instructions, veuillez consulter la section Compte Admin.az acr update -n <acrName> --admin-enabled true
Alternativement, vous pouvez utiliser l’interface utilisateur du portail Azure pour créer votre Azure container registry. Pour les instructions, veuillez consulter la section Créer un conteneur. Activez le compte administrateur dans Propriétés après avoir créé le registre.
Créer le pipeline
Dans votre projet Azure DevOps, sélectionnez Pipelines>Nouveau pipeline ou Créer un pipeline si ce pipeline est le premier dans le projet.
Sélectionnez GitHub comme emplacement de votre code source.
Sur l’écran Sélectionner un référentiel, sélectionnez votre référentiel de code d’exemple.
Sur l’écran Configurer votre pipeline, sélectionnez le pipeline : Générer et envoyer (push) une image vers le pipeline Azure Container Registry.
Sur l’écran Docker, sélectionnez votre abonnement Azure puis sélectionnez Continuer.
Sélectionnez votre Container Registry dans le menu déroulant, fournissez un Nom d’image, puis sélectionnez Valider et configurer.
Azure Pipelines génère un fichier azure-pipelines.yml qui définit votre pipeline.
Examinez le code dans azure-pipelines.yml, puis sélectionnez Enregistrer et exécuter.
Modifiez éventuellement le Commit message et fournissez une description. Ensuite, sélectionnez à nouveau Enregistrer et exécuter pour valider le fichier azure-pipelines.yml dans votre référentiel et démarrer une compilation.
La page d’exécution de la compilation affiche les détails et la progression de la compilation. Pour voir votre pipeline en action, sélectionnez Build sous Jobs (Tâches).
Détails du pipeline
Le pipeline est généré à partir du modèle de conteneur Docker. La phase de compilation utilise la tâche Docker v2 pour compiler et pousser votre image Docker vers le registre de conteneurs.
La tâche Docker utilise une connexion de service de registre Docker avec une authentification par principal de service pour permettre à votre pipeline de pousser des images vers votre registre de conteneurs. Le modèle de conteneur Docker génère cette connexion de service lorsqu’il crée le pipeline.
- stage: Build
displayName: Build and push stage
jobs:
- job: Build
displayName: Build job
pool:
vmImage: $(vmImageName)
steps:
- task: Docker@2
displayName: Build and push an image to container registry
inputs:
command: buildAndPush
repository: $(imageRepository)
dockerfile: $(dockerfilePath)
containerRegistry: $(dockerRegistryServiceConnection)
tags: |
$(tag)
Nettoyer les ressources
Lorsque vous avez terminé d’utiliser les ressources créées dans ce tutoriel, vous pouvez les supprimer pour éviter d’encourir des frais supplémentaires. Exécutez la commande Cloud Shell suivante pour supprimer votre groupe de ressources et toutes les ressources qu’il contient.
az group delete --name myapp-rg