Aracılığıyla paylaş


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

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

    Azure Cloud Shell düğmesi

  2. 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
    
  3. 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 parametresini az 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

  1. Azure DevOps projenizde İşlem Hatları>Yeni işlem hattı'nı veya projenin ilk işlem hattıysa İşlem hattı oluştur'u seçin.

    Yeni işlem hattı oluştur ekranını gösteren ekran görüntüsü.

  2. Kaynak kodunuzun konumu olarak GitHub'ı seçin.

  3. Depo seçin ekranında örnek kod deponuzu seçin.

  4. İş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.

    Derleme ve Docker görüntüsünü Azure Container Registry işlem hattı seçimine gönderme işlemini gösteren ekran görüntüsü.

  5. Docker ekranında Azure aboneliğinizi ve ardından Devam'ı seçin.

  6. 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 Container Registry'de görüntü derlemek ve yayımlamak için Docker işlem hattını yapılandırmayı gösteren ekran görüntüsü.

    Azure Pipelines, işlem hattınızı tanımlayan bir azure-pipelines.yml dosyası oluşturur.

  7. kodu azure-pipelines.yml gözden geçirin ve kaydet ve çalıştır'ı seçin.

    Yeni bir YAML işlem hattında Kaydet ve çalıştır düğmesinin ekran görüntüsü.

  8. İ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.

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

    İş çalıştırma sayfasındaki Derleme bağlantısını gösteren ekran görüntüsü.

İş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