Compilare ed eseguire il push di immagini Docker al Registro Azure Container usando modelli Docker

Servizi di Azure DevOps

In questa esercitazione dettagliata si apprenderà come configurare una pipeline di integrazione continua per creare un'applicazione in contenitori. Le nuove richieste pull attivano la pipeline per compilare e pubblicare immagini Docker in Registro Azure Container.

Prerequisiti

Ottenere il codice

Creare una copia tramite fork o clonare l'applicazione di esempio pipeline-javascript-docker :

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

Creare un registro contenitori

  1. Accedere ad Azure e quindi selezionare il pulsante Azure Cloud Shell nell'angolo in alto a destra.

    Azure Cloud Shell button

  2. Eseguire i comandi seguenti per creare un gruppo di risorse e un Registro Azure Container usando l'interfaccia della riga di comando di 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
    

Nota

Un nome del Registro Container deve essere in minuscolo.

È anche possibile usare l'interfaccia utente Web portale di Azure per creare il Registro Azure Container. Per informazioni dettagliate, vedere Creare un registro contenitori.

Importante

È necessario abilitare l'account utente amministratore per distribuire un'immagine Docker da un Registro Azure Container. Per altri dettagli, vedere Autenticazione del Registro Contenitori.

Creare la pipeline

  1. Accedere all'organizzazione di Azure DevOps e passare al progetto.

  2. Selezionare Pipeline e quindi nuova pipeline per creare una nuova pipeline.

    Create a new pipeline

  3. Selezionare GitHub YAML e quindi autorizzare Azure Pipelines a fornire le autorizzazioni appropriate per accedere al repository.

  4. Potrebbe essere richiesto di accedere a GitHub. In tal caso, immettere le credenziali di GitHub e quindi selezionare il repository dall'elenco dei repository.

  5. Nella scheda Configura selezionare Docker - Compila ed esegui il push di un'immagine per Registro Azure Container'attività.

    Build and push Docker images to Azure Container Registry

  6. Selezionare la sottoscrizione di Azure e quindi continua.

  7. Selezionare il registro Contenitori dal menu a discesa e quindi specificare un nome immagine per l'immagine del contenitore.

  8. Al termine, selezionare Convalida e configurare .

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

    Man mano che Azure Pipelines crea la pipeline, sarà possibile:

    • Creare una connessione al servizio registro Docker per consentire alla pipeline di eseguire il push delle immagini nel registro contenitori.

    • Generare un file azure-pipelines.yml che definisce la pipeline.

  9. Esaminare il file YAML della pipeline e quindi selezionare Salva ed esegui quando si è pronti.

    Review your pipeline, save & run

  10. Aggiungere un messaggio commit e quindi selezionare Salva ed esegui per eseguire il commit delle modifiche ed eseguire la pipeline.

  11. Durante l'esecuzione della pipeline, selezionare il processo di compilazione per controllare la pipeline in azione.

    Monitor builds

Come creare la pipeline

La pipeline appena creata nella sezione precedente è stata generata dal modello di contenitore Docker YAML. La fase di compilazione usa l'attività Docker@2 Docker per compilare ed eseguire il push dell'immagine Docker nel registro contenitori.

- 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)

Pulire le risorse

Se non si intende continuare a usare questa applicazione, è possibile eliminare le risorse create in questa esercitazione per evitare di incorrere in addebiti in corso. Eseguire quanto segue per eliminare il gruppo di risorse.

az group delete --name myapp-rg