Docker görüntülerini derlemek ve Azure Container Registry'ye göndermek için Docker YAML kullanma
Azure DevOps Services
Bu öğreticide kapsayıcılı uygulama oluşturmak ve Bunu Azure Container Registry'ye göndermek için Azure Pipelines Docker şablonunu temel alan bir işlem hattının nasıl kullanılacağı gösterilmektedir. Şablon, yeni kod deposu değişikliklerinin güncelleştirilmiş Docker görüntülerini derlemek ve kayıt defterinde yayımlamak için işlem hattını tetiklediği bir sürekli tümleştirme YAML işlem hattı ayarlar.
Docker kapsayıcı şablonu işlem hattı, Microsoft tarafından barındırılan aracıları kullanır ve Azure Container Registry ile hizmet sorumlusu tabanlı bir hizmet bağlantısı oluşturur. Şirket içinde barındırılan aracıları ve kendi oluşturduğunuz bir hizmet bağlantısını kullanarak benzer bir işlem hattı için bkz . Docker görüntülerini derleme ve Azure Container Registry'ye gönderme.
Önkoşullar
Kaynak oluşturma ve yapılandırma izninizin olduğu bir Azure hesabı. Azure hesabınız yoksa ücretsiz bir hesaba kaydolun.
İşlem hatları oluşturma ve uygulama dağıtma izninizin olduğu bir Azure DevOps kuruluşu ve projesi. Kuruluş veya proje oluşturmak için bkz . Yeni kuruluş oluşturma veya Azure DevOps'ta proje oluşturma.
Bir GitHub hesabı.
Önemli
Aşağıdaki yordamlarda GitHub'ı kullandığınızda, GitHub hizmet bağlantısı oluşturmanız, GitHub'da oturum açmanız, GitHub kuruluşlarında kimlik doğrulaması yapmanız, Azure Pipelines'ı yüklemeniz veya Azure Pipelines'ı yetkilendirmeniz istenebilir. İşlemi tamamlamak için ekrandaki yönergeleri izleyin. Daha fazla bilgi için bkz . GitHub depolarına erişim.
Örnek uygulamayı alma
GitHub'da Örnek Docker ve Kubernetes Node.JS uygulama deposunu çatallandırın veya kopyalayın.
Kapsayıcı kayıt defteri oluşturma
Azure portalında, üst menü çubuğundaki simgeyi seçerek Azure Cloud Shell'de oturum açın. Bash kabuğunu kullandığınızdan emin olun.
Cloud Shell'de aşağıdaki komutları çalıştırarak Azure CLI kullanarak bir kaynak grubu ve Azure kapsayıcı kayıt defteri oluşturun. Container Registry adı küçük harfle yazılmalıdır.
az group create --name myapp-rg --location eastus az acr create --resource-group myapp-rg --name mycontainerregistry --sku Basic
Azure kapsayıcı kayıt defterine bir Docker görüntüsü dağıtmak için, varsayılan olarak devre dışı bırakılan kayıt defteri için yönetici kullanıcı hesabını etkinleştirmeniz gerekir. Kayıt defterinizde yönetici kullanıcıyı etkinleştirmek için komutunu kullanarak
--admin-enabled
parametresiniaz acr update
kullanın. Daha fazla bilgi ve yönergeler için bkz . Yönetici hesabı.az acr update -n <acrName> --admin-enabled true
Alternatif olarak Azure portal kullanıcı arabirimini kullanarak Azure kapsayıcı kayıt defterinizi oluşturabilirsiniz. Yönergeler için bkz . Kapsayıcı kayıt defteri oluşturma. Kayıt defterini oluşturduktan sonra Özellikler'de yönetici hesabını etkinleştirin.
İşlem hattını oluşturma
Azure DevOps projenizde İşlem Hatları>Yeni işlem hattı'nı veya projenin ilk işlem hattıysa İşlem hattı oluştur'u seçin.
Kaynak kodunuzun konumu olarak GitHub'ı seçin.
Depo seçin ekranında örnek kod deponuzu seçin.
İşlem hattınızı yapılandırın ekranında Docker: Derleme ve Azure Container Registry işlem hattına görüntü gönderme'yi seçin.
Docker ekranında Azure aboneliğinizi ve ardından Devam'ı seçin.
Açılan menüden Container kayıt defterinizi seçin, bir Görüntü Adı sağlayın ve ardından Doğrula ve yapılandır'ı seçin.
Azure Pipelines, işlem hattınızı tanımlayan bir azure-pipelines.yml dosyası oluşturur.
kodu azure-pipelines.yml gözden geçirin ve kaydet ve çalıştır'ı seçin.
İsteğe bağlı olarak İşleme iletisini düzenleyin ve bir açıklama sağlayın. Ardından Kaydet'i seçip yeniden çalıştırarak azure-pipelines.yml dosyasını deponuza işleyip bir derleme başlatın.
Derleme çalıştırması sayfasında derleme ayrıntıları ve ilerleme durumu gösterilir. İşlem hattınızın nasıl çalıştığını izlemek için İşler'in altında Derle'yi seçin.
İşlem hattı ayrıntıları
İşlem hattı Docker kapsayıcı şablonundan oluşturulur. Derleme aşaması, Docker görüntünüzü derlemek ve kapsayıcı kayıt defterine göndermek için Docker v2 görevini kullanır.
Docker görevi, işlem hattınızın kapsayıcı kayıt defterinize görüntü göndermesini sağlamak için hizmet sorumlusu kimlik doğrulamasıyla bir Docker kayıt defteri hizmeti bağlantısı kullanır. Docker kapsayıcı şablonu, işlem hattını oluşturduğunda bu hizmet bağlantısını oluşturur.
- 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)
Kaynakları temizleme
Bu öğreticide oluşturduğunuz kaynakları kullanmayı bitirdiğinizde, daha fazla ücret tahsil edilmemesi için bunları silebilirsiniz. Kaynak grubunuzu ve içindeki tüm kaynakları silmek için aşağıdaki Cloud Shell komutunu çalıştırın.
az group delete --name myapp-rg