Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022 | Azure DevOps Server 2020
Mit Azure Pipelines können Sie Ihre Web-App in einem Azure App Service Web App-Container unter Linux erstellen, testen und automatisch bereitstellen. In diesem Artikel erfahren Sie, wie Sie YAML- oder klassische Pipelines verwenden, um:
- Erstellen und veröffentlichen Sie ein Docker-Image in der Azure-Containerregistrierung.
- Erstellen Sie eine Azure Web App.
- Stellen Sie einen Container in Azure App Service bereit.
- Bereitstellung auf Bereitstellungs-Slots.
Voraussetzungen
| Produkt | Anforderungen |
|---|---|
| Azure DevOps | – Eine Azure DevOps-Organisation und ein Projekt.
Erstellen Sie ein kostenloses Konto. - Berechtigungen: – Um Zugriff auf alle Pipelines im Projekt zu gewähren: Sie müssen Mitglied der Gruppe "Projektadministratoren" sein. – Um Dienstverbindungen zu erstellen: Sie müssen über die Rolle "Administrator " oder " Ersteller " für Dienstverbindungen verfügen. – Eine Möglichkeit zum Ausführen von Pipelines auf von Microsoft gehosteten Agenten. Sie können entweder einen parallelen Auftrag erwerben oder ein kostenloses Kontingent anfordern. |
| GitHub (Englisch) | - Ein GitHub-Konto . |
| Azurblau | – Eine Azure-Containerregistrierung. Erstellen Sie eine Azure Container Registry, wenn Sie noch keine haben. |
Abrufen des Codes
Forken Sie die folgende Beispiel-App auf GitHub.
https://github.com/spring-guides/gs-spring-boot-docker.git
Erstellen und Veröffentlichen eines Docker-Images in Azure Container Registry
Um diesen Abschnitt erfolgreich abzuschließen, benötigen Sie eine Azure Container Registry. Weitere Informationen finden Sie im Abschnitt zu Voraussetzungen.
Melden Sie sich bei Ihrer Azure DevOps-Organisation an, und navigieren Sie zu Ihrem Projekt.
Wählen Sie Pipelines und dann Neue Pipeline aus.
Wählen Sie GitHub aus, wenn Sie zur Angabe des Speicherorts Ihres Quellcodes aufgefordert werden, und wählen Sie dann Ihr Repository aus.
Wählen Sie die Pipelinevorlage Erstellen und Pushen des Docker-Images für Azure Container Registry aus.
Wählen Sie Ihr Azure-Abonnement und dann Weiter aus.
Wählen Sie im Dropdownmenü Ihre Containerregistrierung aus und wählen Sie dann Überprüfen und Konfigurieren aus.
Überprüfen Sie die YAML-Pipelinevorlage und wählen Sie dann Speichern und Ausführen, um das Docker-Image in der Azure-Containerregistrierung zu erstellen und zu veröffentlichen.
trigger: - main resources: - repo: self variables: # Container registry service connection established during pipeline creation dockerRegistryServiceConnection: '{{ containerRegistryConnection.Id }}' imageRepository: 'javascriptdocker' containerRegistry: 'sampleappcontainerregistry.azurecr.io' dockerfilePath: '$(Build.SourcesDirectory)/app/Dockerfile' tag: '$(Build.BuildId)' # Agent VM image name vmImageName: 'ubuntu-latest' stages: - stage: Build displayName: Build and push stage jobs: - job: Build displayName: Build 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)Um das veröffentlichte Docker-Image anzuzeigen, nachdem die Pipelineausführung abgeschlossen ist, wechseln Sie zur Containerregistrierung im Azure-Portal, und wählen Sie dann Repositorys aus.
Um das Image aus der Containerregistrierung bereitzustellen, aktivieren Sie das Administratorbenutzerkonto. Wechseln Sie zur Containerregistrierung im Azure-Portal, und wählen Sie Zugriffstasten aus. Wählen Sie dann die Umschaltfläche aus, um den Administratorbenutzer zu aktivieren.
Erstellen einer „“-Web-App
Navigieren Sie zum Azure-Portal.
Wählen Sie "Eine Ressource erstellen">, dann "Container", und schließlich "Web App für Container" aus.
Geben Sie einen Namen für Ihre neue Web-App ein, und erstellen Sie eine neue Ressourcengruppe. Wählen Sie unter Betriebssystem die Option Linux aus.
Wählen Sie im Abschnitt "Preispläne " den F1 Free-Plan aus.
Klicken Sie auf Überprüfen und erstellen. Überprüfen Sie Ihre Konfiguration, und wählen Sie "Erstellen" aus, wenn Sie fertig sind.
Bereitstellen in Web-Apps für Container
In diesem YAML erstellen Sie ein Docker-Image, pushen es in eine Containerregistrierung und stellen es dann in Azure-Web-App für Container bereit. In der Buildphase erstellen Sie ein Docker-Image und pushen es mit der Docker@2-Aufgabe an eine Azure Container Registry. Die AzureWebAppContainer@1-Aufgabe stellt das Image in Web-App für Container bereit.
trigger:
- main
resources:
- repo: self
variables:
## Add this under variables section in the pipeline
azureSubscription: <Name of the Azure subscription>
appName: <Name of the Web App>
containerRegistry: <Name of the Azure container registry>
dockerRegistryServiceConnection: '4fa4efbc-59af-4c0b-8637-1d5bf7f268fc'
imageRepository: <Name of image repository>
dockerfilePath: '$(Build.SourcesDirectory)/Dockerfile'
tag: '$(Build.BuildId)'
vmImageName: 'ubuntu-latest'
stages:
- stage: Build
displayName: Build and push stage
jobs:
- job: Build
displayName: Build
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)
## Add the below snippet at the end of your pipeline
- task: AzureWebAppContainer@1
displayName: 'Azure Web App on Container Deploy'
inputs:
azureSubscription: $(azureSubscription)
appName: $(appName)
containers: $(containerRegistry)/$(imageRepository):$(tag)
Bereitstellen in einem Bereitstellungsslot
Konfigurieren Sie den Azure Web App-Container für mehrere Steckplätze. Mithilfe von Slots können Sie Ihre App sicher bereitstellen und testen, bevor Sie sie Ihren Kunden zur Verfügung stellen. Weitere Informationen finden Sie in "Stagingumgebungen erstellen".
Der folgende YAML-Codeausschnitt zeigt, wie in einem Stagingslot bereitgestellt und dann zu einem Produktionsslot getauscht wird:
- task: AzureWebAppContainer@1
inputs:
azureSubscription: '<Azure service connection>'
appName: '<Name of the web app>'
containers: $(containerRegistry)/$(imageRepository):$(tag)
deployToSlotOrASE: true
resourceGroupName: '<Name of the resource group>'
slotName: staging
- task: AzureAppServiceManage@0
inputs:
azureSubscription: '<Azure service connection>'
WebAppName: '<name of web app>'
ResourceGroupName: '<name of resource group>'
SourceSlot: staging
SwapWithProduction: true
Häufig gestellte Fragen
F: Wie finde ich meine Docker-Registrierungsanmeldeinformationen?
A: Wechseln Sie zum Azure-Portal, und wählen Sie Ihre Web App für Container aus. Wählen Siedie Konfigurationsanwendungseinstellungen> aus, und wählen Sie dann aus, um den Wert anzuzeigen.