Erstellen und Pushen von Docker-Images in Azure Container Registry mithilfe von Docker-Vorlagen
Azure DevOps Services
In dieser exemplarischen Vorgehensweise erfahren Sie, wie Sie eine Continuous Integration-Pipeline einrichten, um eine containerisierte Anwendung zu erstellen. Neue Pull Requests lösen die Pipeline zum Erstellen und Veröffentlichen von Docker-Images in Azure Container Registry aus.
Voraussetzungen
Ein GitHub-Konto. Erstellen Sie ein kostenloses GitHub-Konto, wenn Sie noch keines besitzen.
Eine Azure DevOps-Organisation und ein Projekt. Erstellen Sie eine neue Organisation und/oder ein neues Projekt, falls noch nicht vorhanden.
Ein Azure-Konto. Registrieren Sie sich für ein kostenloses Docker-Konto, wenn Sie noch keines besitzen.
Abrufen des Codes
Forken oder Klonen der pipeline-javascript-docker-Beispielanwendung:
https://github.com/MicrosoftDocs/pipelines-javascript-docker
Erstellen einer Containerregistrierung
Melden Sie sich bei Azure an, und wählen Sie dann in der oberen rechten Ecke die Schaltfläche Azure Cloud Shell aus.
Führen Sie die folgenden Befehle aus, um eine Ressourcengruppe und eine Azure Container Registry-Instanz 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 Container Registry-Name muss kleingeschrieben sein.
Sie können auch die Azure-Portalweb-UI verwenden, um Ihre Azure Container Registry-Instanz zu erstellen. Details finden Sie unter Erstellen einer Containerregistrierung.
Wichtig
Sie müssen das Administratorbenutzerkonto aktivieren, damit Sie ein Docker-Image aus einer ACR-Instanz bereitstellen können. Weitere Informationen finden Sie unter Containerregistrierungsauthentifizierung.
Erstellen der Pipeline
Melden Sie sich bei Ihrer Azure DevOps-Organisation an, und navigieren Sie zu Ihrem Projekt.
Wählen Sie Pipelines aus, und wählen Sie dann Neue Pipeline aus, um eine neue Pipeline zu erstellen.
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 zu gewähren.
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 entsprechenden Liste aus.
Wählen Sie auf der Registerkarte Konfigurieren die Aufgabe Docker – Erstellen und Pushen eines Images an Azure Container Registry aus.
Wählen Sie Ihr Azure-Abonnement und dann Weiter aus.
Wählen Sie im Dropdownmenü Ihre Containerregistrierung aus, und geben Sie dann dem Containerimage einen Imagenamen.
Wählen Sie Überprüfen und konfigurieren aus, wenn Sie fertig sind.
Wenn Azure Pipelines Ihre Pipeline erstellt, wird folgendes ausgeführt:
Erstellt eine Dienstverbindung für Docker-Registrierung, damit Ihre Pipeline Images in Ihre Containerregistrierung pushen kann.
Generiert eine Datei azure-pipelines.yml, die Ihre Pipeline definiert.
Überprüfen Sie Ihre Pipeline-YAML, und wählen Sie dann Speichern und ausführen aus, wenn Sie fertig sind.
Fügen Sie eine Commitnachricht hinzu, und wählen Sie dann Speichern und ausführen aus, um Ihre Änderungen zu übernehmen und die Pipeline auszuführen.
Wenn Ihre Pipeline ausgeführt wird, wählen Sie den Buildauftrag aus, um Ihre Pipeline in Aktion zu überwachen.
So erstellen wir Ihre Pipeline
Die Pipeline, die wir soeben im vorherigen Abschnitt erstellt haben, wurde aus der Docker-Containervorlage YAML generiert. In der Buildphase wird die Docker-Aufgabe Docker@2
verwendet, um Ihr Docker-Image in 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 weiter verwenden werden, können Sie die in diesem Tutorial erstellten Ressourcen löschen, um laufende Gebühren zu vermeiden. Führen Sie Folgendes aus, um Ihre Ressourcengruppe zu löschen.
az group delete --name myapp-rg