Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Met Behulp van Azure Pipelines kunt u uw web-app bouwen, testen en automatisch implementeren in een Azure-app Service Web App-container in Linux. In dit artikel leert u hoe u YAML- of klassieke pijplijnen gebruikt voor het volgende:
- Bouw en publiceer een Docker-image in de Azure Container Registry.
- Een Azure-web-app maken.
- Een container implementeren in Azure App Service.
- Implementeren naar implementatieslots.
Vereisten
| Product | Eisen |
|---|---|
| Azure DevOps | - Een Azure DevOps-organisatie en -project.
Maak gratis een account. - Machtigingen: - Als u toegang wilt verlenen tot alle pijplijnen in het project: u moet lid zijn van de groep Projectbeheerders. - Als u serviceverbindingen wilt maken: u moet de rol Beheerder of Maker hebben voor serviceverbindingen. - Een vermogen om pijplijnen uit te voeren op agents die door Microsoft worden gehost. U kunt een parallelle taak aanschaffen of u kunt een gratis laag aanvragen. |
| GitHub | - Een GitHub-account . |
| Azuur | - Een Azure Container Registry. Maak een Azure-containerregister als u er nog geen hebt. |
Code ophalen
Fork de volgende voorbeeld-app op GitHub.
https://github.com/spring-guides/gs-spring-boot-docker.git
Een Docker-image bouwen en publiceren naar Azure Container Registry
Als u deze sectie wilt voltooien, moet u een Azure Container Registry hebben. Raadpleeg de sectie vereisten voor meer informatie.
Meld u aan bij uw Azure DevOps-organisatie en navigeer naar uw project.
Selecteer Pijplijnen en vervolgens Nieuwe pijplijn.
Selecteer GitHub wanneer u wordt gevraagd om de locatie van uw broncode en selecteer vervolgens uw opslagplaats.
Selecteer de pijplijnsjabloon Docker: build and push an image to Azure Container Registry.
Selecteer uw Azure-abonnement en selecteer vervolgens Doorgaan.
Selecteer uw containerregister in de vervolgkeuzelijst en selecteer vervolgens Valideren en configureren.
Controleer de YAML-sjabloon van de pijplijn, en selecteer Opslaan en uitvoeren om de Docker-image te bouwen en te publiceren naar de Azure Container Registry.
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)Als u de gepubliceerde Docker-image wilt bekijken nadat de pijplijnuitvoering is voltooid, gaat u naar het containerregister in de Azure portal en selecteert u Repositories.
Om de afbeelding uit het containerregister te ontplooien, schakelt u het beheerdersaccount in. Ga naar het containerregister in Azure Portal en selecteer Toegangssleutels. Selecteer vervolgens de wisselknop om de beheerdergebruiker in te schakelen.
Een web-app maken
Ga naar Azure-portal.
Selecteer Een resource maken>, Containers en kies vervolgens Web App for Containers.
Voer een naam in voor uw nieuwe web-app en maak een nieuwe resourcegroep. Selecteer Linux voor het besturingssysteem.
Selecteer in de sectie Prijsplannen het gratis F1-abonnement.
Selecteer Beoordelen en maken. Controleer uw configuratie en selecteer Maken wanneer u klaar bent.
Implementeren in Web App for Containers
In deze YAML bouwt en pusht u een Docker-afbeelding naar een containerregister en implementeert u deze vervolgens in Azure Web App voor Containers. In de buildfase bouwt en pusht u een Docker-image naar een Azure Container Registry met de Docker@2 taak. De AzureWebAppContainer@1 taak implementeert het image in Web App for Containers.
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)
Implementeren naar een implementatieslot
Configureer de Azure Web App-container voor meerdere slots. Met slots kunt u uw app veilig implementeren en testen voordat u deze beschikbaar maakt voor uw klanten. Meer informatie vindt u in faseringsomgevingen maken.
In het volgende YAML-fragment ziet u hoe u implementeert in een staging-slot en vervolgens wisselt naar een productieslot.
- 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
Veelgestelde vragen
V: Hoe kan ik mijn Docker-registerreferenties vinden?
A: Ga naar Azure Portal en selecteer uw Web App for Containers. Selecteer Configuratie>Applicatie-instellingen, en selecteer vervolgens om de waarde weer te geven.