Azure uygulaması özel kapsayıcısını dağıtma

Web uygulamanızı Azure 'da özel bir kapsayıcıyaotomatik olarak dağıtmak için Linux ve işlem hatları üzerinde App Service kullanabilirsiniz.

Azure App Service, Web uygulamalarını, REST API 'Leri ve mobil arka uçları barındırmak için yönetilen bir ortamdır. .NET, Python ve JavaScript gibi en sevdiğiniz dillerde geliştirme yapabilirsiniz.

İşlem hattınızda Azure App Service dağıtmak üzere kapsayıcı Için Azure Web App görevini kullanacaksınız.

Bir Azure Web uygulamasına kapsayıcı olmadan dağıtmayı öğrenmek için bkz. Azure Web uygulaması dağıtma.

Not

bu kılavuz Team Foundation Server (TFS) sürüm 2017,3 ve üzeri için geçerlidir.

Önkoşullar

Görüntünüzü derleyin ve gönderin

Azure Pipelines, Azure Container Registry (acr), docker Hub, Google container kayıt defterleri ve diğerleri gibi kapsayıcı kayıt defterlerine görüntü göndermek için kullanılabilir. Bu örnek, bir görüntüyü Azure Container Registry 'e iter.

  1. Azure DevOps kuruluşunuzda oturum açın ve projenize gidin.

  2. Pipelinesgidin ve yeni işlem hattı' nı seçin.

  3. kaynak kodunuzun konumu olarak GitHub seçin ve deponuzu seçin.

    Not

    oturum açmak için GitHub yönlendiriliyorsunuz. bu durumda GitHub kimlik bilgilerinizi girin. Azure Pipelines uygulamasını yüklemek için GitHub yönlendiriliyorsunuz. Öyleyse, Onayla ve yüklensin' i seçin.

  4. Yapılandır sekmesinde Docker-Build ' ı seçin ve Azure Container Registry görevi için bir görüntü gönderin .

  5. Azure aboneliğiniziseçin ve ardından açılan menüden kapsayıcı kayıt defterinizi seçin.

  6. Kapsayıcı yansımanıza bir görüntü adı girin ve ardından Doğrula ve Yapılandır' ı seçin.

    Azure Pipelines işlem hattınızı oluştururken:

    • İşlem hattınızı kapsayıcı Kayıt defterinize görüntü göndermeye olanak tanımak için bir Docker kayıt defteri hizmet bağlantısı oluşturur.

    • İşlem hattınızı tanımlayan bir Azure-Pipelines. yıml dosyası üretir.

  7. İşlem hattınızı kaydedin ve çalıştırın. YAML işlem hattınızda şuna benzer görünmelidir:

- 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)

Deneyimli bir işlem hattı kullanıcısı ve .NET Core uygulamanızı derlemek için zaten bir YAML işlem hattı varsa, aşağıdaki örnekleri yararlı bulabilirsiniz.

YAML işlem hatları TFS 'de kullanılamaz.

Artık derleme işlem hattı olduğuna göre, Azure Container Web uygulamasının dağıtımını özelleştirmek için daha yaygın olarak kullanılan birkaç yapılandırma öğreneceksiniz.

Kapsayıcı için Azure Web App ile dağıtma

Kapsayıcı Için Azure Web App göreviIle bir Azure Uygulama özel kapsayıcısına dağıtın.


trigger:
- master

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)

Kapsayıcıda Azure Web App görevi, belirtilen depodan BuildId öğesine karşılık gelen uygun Docker görüntüsünü alacak ve ardından görüntüyü Linux üzerinde Azure App Service dağıtacaktır.

YAML işlem hatları TFS 'de kullanılamaz.

Bir yuvaya dağıtma

Azure Web App kapsayıcısını birden çok yuvaya sahip olacak şekilde yapılandırabilirsiniz. Yuvalar, uygulamanızı güvenli bir şekilde dağıtmanıza ve müşterileriniz için kullanılabilir hale getirmeden önce test yapmanıza olanak sağlar.

Aşağıdaki YAML kod parçacığında bir hazırlama yuvasına nasıl dağıtılacağı ve sonra bir üretim yuvasına nasıl değiştirileceği gösterilmektedir:

- 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

YAML işlem hatları TFS 'de kullanılamaz.

SSS

Web uygulaması için kayıt defterimin kimlik bilgilerini bulmak Nasıl yaparım? mı?

App Service, özel görüntüyü çekmek için kayıt defteriniz ve görüntünüz hakkında bilgi istiyor. Azure Portal, Web uygulamasından kapsayıcı ayarları ' na gidin ve görüntü kaynağını, kayıt defterini ve Kaydet ' i güncelleştirin.

Kapsayıcı ayarlarında görüntü kaynağını ve kayıt defterini güncelleştirme gösteren ekran görüntüsü.