Erstellen und Pushen von Docker-Images an Azure Container Registry

Azure DevOps Services

In diesem schrittweisen Lernprogramm erfahren Sie, wie Sie eine fortlaufende Integrationspipeline einrichten, um eine containerisierte Anwendung zu erstellen. Neue Pullanforderungen lösen die Pipeline aus, um Docker-Images in Azure Container Registry zu erstellen und zu veröffentlichen.

Voraussetzungen

Beziehen des Codes

Freihand oder klonen Sie die Pipeline-javascript-docker-Beispielanwendung :

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

Erstellen einer Containerregistrierung

  1. Melden Sie sich bei Azure an, und wählen Sie dann die Schaltfläche "Azure Cloud Shell" in der oberen rechten Ecke aus.

    Azure Cloud Shell-Schaltfläche

  2. Führen Sie die folgenden Befehle aus, um eine Ressourcengruppe und eine Azure Container Registry mithilfe der Azure CLI zu erstellen.

    # 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
    

Hinweis

Ein Containerregistrierungsname muss kleingeschrieben sein.

Sie können auch die Azure-Portal Web-UI verwenden, um Ihre Azure Container Registry zu erstellen. Ausführliche Informationen finden Sie unter " Erstellen einer Containerregistrierung ".

Wichtig

Sie müssen das Administratorbenutzerkonto aktivieren, damit Sie ein Docker-Image aus einem Azure Container Registry bereitstellen können. Weitere Details finden Sie in der Containerregistrierungsauthentifizierung .

Erstellen der Pipeline

  1. Melden Sie sich bei Ihrer Azure DevOps-Organisation an, und navigieren Sie zu Ihrem Projekt.

  2. Wählen Sie "Pipelines" und dann " Neue Pipeline " aus, um eine neue Pipeline zu erstellen.

    Erstellen einer neuen Pipeline

  3. Wählen Sie GitHub YAML aus, und wählen Sie dann "Azure-Pipelines autorisieren " aus, um die entsprechenden Berechtigungen für den Zugriff auf Ihr Repository bereitzustellen.

  4. Möglicherweise werden Sie aufgefordert, sich bei GitHub anzumelden. Wenn ja, geben Sie Ihre GitHub-Anmeldeinformationen ein, und wählen Sie dann Ihr Repository aus der Liste der Repositorys aus.

  5. Wählen Sie auf der Registerkarte "Konfigurieren" die Option "Docker – Erstellen" aus, und drücken Sie ein Image an Azure Container Registry Aufgabe.

    Erstellen und Pushen von Docker-Images an Azure Container Registry

  6. Wählen Sie Ihr Azure-Abonnement aus, und wählen Sie dann "Weiter" aus.

  7. Wählen Sie ihre Containerregistrierung im Dropdownmenü aus, und geben Sie dann ihrem Containerimage einen Imagenamen an.

  8. Wählen Sie "Überprüfen" und "Konfigurieren" aus, wenn Sie fertig sind.

    Screenshot zum Konfigurieren einer Docker-Pipeline zum Erstellen und Veröffentlichen eines Images in Azure Container Registry

    Da Azure Pipelines Ihre Pipeline erstellt, wird folgendes ausgeführt:

    • Erstellen Sie eine Docker-Registrierungsdienstverbindung , um Ihre Pipeline zum Pushen von Images an Ihre Containerregistrierung zu ermöglichen.

    • Generiert eine Datei azure-pipelines.yml, die Ihre Pipeline definiert.

  9. Überprüfen Sie Ihre Pipeline-YAML, und wählen Sie dann "Speichern" aus, und führen Sie sie aus, wenn Sie bereit sind.

    Überprüfen Sie Ihre Pipeline, speichern & Sie die Ausführung

  10. Fügen Sie eine Commit-Nachricht hinzu, und wählen Sie dann "Speichern" aus, und führen Sie sie aus, um Ihre Änderungen zu übernehmen und ihre Pipeline auszuführen.

  11. Wenn Ihre Pipeline ausgeführt wird, wählen Sie den Buildauftrag aus, um Ihre Pipeline in Aktion zu überwachen.

    Überwachen von Builds

Wie wir Ihre Pipeline erstellen

Die Pipeline, die wir gerade im vorherigen Abschnitt erstellt haben, wurde aus der Docker-Containervorlage YAML generiert. In der Buildphase wird die Docker-AufgabeDocker@2 verwendet, um Ihr Docker-Image an die Containerregistrierung zu erstellen und zu übertragen.

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

Bereinigen von Ressourcen

Wenn Sie diese Anwendung nicht weiterhin verwenden werden, können Sie die ressourcen löschen, die Sie in diesem Lernprogramm erstellt haben, um laufende Gebühren zu vermeiden. Führen Sie folgendes aus, um Ihre Ressourcengruppe zu löschen.

az group delete --name myapp-rg