Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Pomocí Služby Azure Pipelines můžete vytvářet, testovat a automaticky nasazovat webovou aplikaci do kontejneru webové aplikace služby Aplikace Azure v Linuxu. V tomto článku se dozvíte, jak používat YAML nebo klasické kanály k:
- Sestavte a publikujte image Dockeru do služby Azure Container Registry.
- Vytvořte webovou aplikaci Azure.
- Nasaďte kontejner do služby Azure App Service.
- Nasazení do slotů pro nasazení
Požadavky
produkt | Požadavky |
---|---|
Azure DevOps | – Organizace a projekt Azure DevOps.
Vytvořte si ho zdarma. - Oprávnění: - Chcete-li udělit přístup ke všem kanálům v projektu: Musíte být členem skupiny Project Administrators. - Chcete-li vytvořit připojení služeb: Musíte mít roli – Možnost spouštět potrubí na Microsoftem hostovaných agentech. Můžete si buď koupit paralelní úlohu, nebo si můžete požádat o bezplatnou úroveň. |
GitHub | – Účet GitHubu . |
Azure | – Azure Container Registry. Pokud ho ještě nemáte, vytvořte registr kontejneru Azure. |
Získání kódu
Forkni následující ukázkovou aplikaci na GitHubu.
https://github.com/spring-guides/gs-spring-boot-docker.git
Sestavení a publikování image Dockeru do služby Azure Container Registry
K úspěšnému dokončení této části musíte mít službu Azure Container Registry. Podrobnosti najdete v části Požadavky.
Přihlaste se ke své organizaci Azure DevOps a přejděte k projektu.
Vyberte Kanály a pak Nový kanál.
Po zobrazení výzvy k zadání umístění zdrojového kódu vyberte GitHub a pak vyberte úložiště.
Vyberte šablonu kanálu Docker: sestavte a nasdílejte image do Azure Container Registry.
Vyberte své předplatné Azure a pak vyberte Pokračovat.
V rozevírací nabídce vyberte registr kontejneru a pak vyberte Ověřit a nakonfigurovat.
Projděte si šablonu YAML kanálu a pak vyberte Uložit a spustit a sestavte a publikujte Docker image do služby 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)
Pokud chcete po dokončení spuštění kanálu zobrazit publikovanou image Dockeru, přejděte v Azure portálu do registru kontejnerů a pak vyberte Úložiště.
Pokud chcete nasadit image z registru kontejneru, povolte uživatelský účet správce. Přejděte do registru kontejneru na webu Azure Portal a vyberte Přístupové klíče. Poté vyberte přepínač pro povolení uživatele správce.
Vytvoření webové aplikace
Přejděte na Azure portal.
Vyberte Vytvořit prostředek>Kontejnery, a pak zvolte Web App for Containers.
Zadejte název nové webové aplikace a vytvořte novou skupinu prostředků. Vyberte Linux pro operační systém.
V části Cenové plány vyberte plán F1 Free.
Vyberte Zkontrolovat a vytvořit. Zkontrolujte konfiguraci a vyberte Vytvořit , až budete hotovi.
Nasazení aplikace do služby Web App for Containers
- YAML
- Klasické
V tomto YAML sestavíte a nasdílíte image Dockeru do registru kontejneru a pak ji nasadíte do Azure Web App for Containers. Ve fázi sestavení sestavíte a nasdílíte image Dockeru do služby Azure Container Registry pomocí úlohy Docker@2. Úloha AzureWebAppContainer@1 nasadí image do služby 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)
Nasazení do vývojového prostředí
- YAML
- Klasické
Nakonfigurujte kontejner webové aplikace Azure tak, aby měl více slotů. Sloty umožňují bezpečně nasadit aplikaci a otestovat ji před tím, než ji zpřístupníte svým zákazníkům. Další informace najdete v části Vytváření přípravných prostředí.
Následující fragment kódu YAML ukazuje, jak se nasadí do přípravného slotu a pak se prohodí do produkčního slotu:
- 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
Často kladené dotazy
Otázka: Jak najdu přihlašovací údaje registru Dockeru?
A: Přejděte na web Azure Portal a vyberte webovou aplikaci pro kontejnery. Vyberte Nastavení konfigurační>aplikace a pak vyberte, aby se zobrazila hodnota.