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
- Etkin aboneliği olan bir Azure hesabı. Ücretsiz hesap oluşturun.
- Linux özel kapsayıcısında dağıtılan bir App Service. Başlamak için bkz. Azure 'da özel kapsayıcı çalıştırma.
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.
Azure DevOps kuruluşunuzda oturum açın ve projenize gidin.
Pipelinesgidin ve yeni işlem hattı' nı seçin.
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.
Yapılandır sekmesinde Docker-Build ' ı seçin ve Azure Container Registry görevi için bir görüntü gönderin .
Azure aboneliğiniziseçin ve ardından açılan menüden kapsayıcı kayıt defterinizi seçin.
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.
İş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.
