Sdílet prostřednictvím


Nasazení vlastního kontejneru do služby Aplikace Azure Service pomocí Azure Pipelines

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 Správce nebo Tvůrce pro připojení služeb .
– 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.

  1. Přihlaste se ke své organizaci Azure DevOps a přejděte k projektu.

  2. Vyberte Kanály a pak Nový kanál.

  3. Po zobrazení výzvy k zadání umístění zdrojového kódu vyberte GitHub a pak vyberte úložiště.

  4. Vyberte šablonu kanálu Docker: sestavte a nasdílejte image do Azure Container Registry.

    Snímek obrazovky s výběrem šablony kanálu Dockeru

  5. Vyberte své předplatné Azure a pak vyberte Pokračovat.

  6. V rozevírací nabídce vyberte registr kontejneru a pak vyberte Ověřit a nakonfigurovat.

    Snímek obrazovky Ověření a konfigurace Dockeru

  7. 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)
    
  8. 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ě.

    Snímek obrazovky s imagí Dockeru publikovanou ve službě Azure Container Registry

  9. 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

  1. Přejděte na Azure portal.

  2. Vyberte Vytvořit prostředek>Kontejnery, a pak zvolte Web App for Containers.

    Snímek obrazovky ukazující vytvoření webové aplikace pro zdroj kontejnerů

  3. Zadejte název nové webové aplikace a vytvořte novou skupinu prostředků. Vyberte Linux pro operační systém.

    Snímek obrazovky s konfigurací webové aplikace

  4. V části Cenové plány vyberte plán F1 Free.

  5. Vyberte Zkontrolovat a vytvořit. Zkontrolujte konfiguraci a vyberte Vytvořit , až budete hotovi.

Nasazení aplikace do služby Web App for Containers

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í

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.

Snímek obrazovky webu Azure Portal znázorňující, jak najít přihlašovací údaje registru Dockeru