Générer et envoyer (push) des images Docker à Azure Container Registry à l’aide de modèles Docker

Azure DevOps Services

Dans ce tutoriel pas à pas, vous allez apprendre à configurer un pipeline d’intégration continue pour créer une application conteneurisée. Les nouvelles demandes de tirage (pull request) déclenchent le pipeline pour générer et publier des images Docker sur Azure Container Registry.

Prérequis

Obtenir le code

Dupliquez ou clonez l’exemple d’application pipeline-javascript-docker :

https://github.com/MicrosoftDocs/pipelines-javascript-docker

Créer un registre de conteneur

  1. Connectez-vous à Azure, puis sélectionnez le bouton Azure Cloud Shell dans le coin supérieur droit.

    Azure Cloud Shell button

  2. Exécutez les commandes suivantes pour créer un groupe de ressources et un Azure Container Registry à l’aide de l’interface de ligne de commande Azure.

    # Create a resource group
    az group create --name myapp-rg --location eastus
    
    # Create a container registry
    az acr create --resource-group myapp-rg --name mycontainerregistry --sku Basic
    

Notes

Un nom Container Registry doit être en minuscules.

Vous pouvez également utiliser l’interface utilisateur web du portail Azure pour créer votre Azure Container Registry. Pour plus d’informations, consultez Créer un registre de conteneurs.

Important

Vous devez activer le compte d’utilisateur administrateur pour déployer une image Docker à partir d’un Azure Container Registry. Pour plus d’informations, consultez Authentification du registre de conteneurs.

Créer le pipeline

  1. Connectez-vous à votre organisation Azure DevOps et accédez à votre projet.

  2. Sélectionnez Pipelines, puis Nouveau pipeline pour créer un pipeline.

    Create a new pipeline

  3. Sélectionnez GitHub YAML, puis Autoriser Azure Pipelines à fournir les autorisations appropriées pour accéder à votre référentiel.

  4. Vous serez peut-être invité à vous connecter à GitHub. Si c’est le cas, entrez vos informations d’identification GitHub, puis sélectionnez votre référentiel dans la liste des référentiels.

  5. Sous l’onglet Configurer, sélectionnez la tâcheDocker – Générer et envoyer (push) une image à Azure Container Registry.

    Build and push Docker images to Azure Container Registry

  6. Sélectionnez votre abonnement Azure, puis sélectionnez Continuer.

  7. Sélectionnez votre registre de conteneurs dans le menu déroulant, puis fournissez un nom d’image à votre image conteneur.

  8. Sélectionnez Valider et configurer lorsque vous avez terminé.

    A screenshot showing how to configure a docker pipeline to build and publish an image to Azure Container Registry

    À mesure qu’Azure Pipelines crée votre pipeline, le processus va effectuer les opérations suivants :

    • Créer une connexion de service de registre Docker pour permettre à votre pipeline d’envoyer (push) des images à votre registre de conteneurs.

    • Générer un fichier azure-pipelines.yml, qui définit votre pipeline.

  9. Passez en revue votre pipeline YAML, puis sélectionnez Enregistrer et exécuter lorsque vous êtes prêt.

    Review your pipeline, save & run

  10. Ajoutez un message de validation, puis sélectionnez Enregistrer et exécuter pour valider vos modifications et exécuter votre pipeline.

  11. Lorsque votre pipeline s’exécute, sélectionnez le travail de génération pour voir votre pipeline en action.

    Monitor builds

Comment nous créons votre pipeline

Le pipeline que nous venons de créer dans la section précédente a été généré à partir du YAML du modèle de conteneur Docker. La phase de génération utilise la tâche DockerDocker@2 pour générer et envoyer (push) votre image Docker au registre de conteneurs.

- 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

Si vous n’envisagez pas de continuer à utiliser cette application, vous pouvez supprimer les ressources que vous avez créées dans ce didacticiel pour éviter d’entraîner des frais en cours. Exécutez ce qui suit pour supprimer votre groupe de ressources.

az group delete --name myapp-rg