Görüntü gönderme

Azure Pipelines

Azure Pipelines, Azure Container Registry (ACR), Docker Hub, Google Container Registries ve diğerleri gibi kapsayıcı kayıt defterlerinde görüntü itmek için kullanılabilir.

İşlem hattında anında itme adımı

Aşağıdaki YAML kod parçacığında, Oturum açma ve kapsayıcı kayıt defterine itme docker göreviyle birlikte Docker kayıt defteri hizmet bağlantısının kullanımı yer almaktadır. Docker kayıt defteri hizmet bağlantısı örnekleri, görüntüyü itmeden önce kapsayıcı kayıt defterinde oturum akan kimlik bilgilerini depolamak için güvenli seçenekler sunar. Bu hizmet bağlantılarına docker oturum açma için bir betik görevi eklemeye ve kullanıcı adı ve parola için gizli değişkenler ayarlamaya gerek kalmadan kayıt defterinde oturum açma docker görevsinde doğrudan başvurulabilirsiniz.

- task: Docker@2
  displayName: Push image
  inputs:
    containerRegistry: |
      $(dockerHub)
    repository: $(imageName)
    command: push
    tags: |
      test1
      test2

Azure Container Registry

DockerAzure Container Registry hizmet bağlantısı seçeneğinin altında, hizmet bağlantısını oluşturmak için abonelik (Azure DevOps'da oturum açmış kullanıcının AAD kimliğiyle ilişkili) ve abonelik içindeki kapsayıcı kayıt defteri seçilebilir. Bu hizmet bağlantılarından daha sonra yukarıdaki YAML kod parçacığında gösterildiği gibi işlem hattı görevlerinden başvurulabilirsiniz.

Dockerfile içeren bir depo için yeni bir işlem hattı oluşturmak için Build and Push to Azure Container Registry belgesi, depoda Dockerfile algılansa Azure Pipelines tarafından otomatik olarak önerilen Docker şablonunu açıklar. Şablon yapılandırması için sağlanan Azure aboneliği ve Azure Container Registry girişleri, Azure Pipelines tarafından Docker kayıt defteri hizmet bağlantısını otomatik olarak oluşturmak ve hatta oluşturulan hizmet bağlantısına başvurarak çalışır bir derleme ve anında işlem hattı oluşturmak için kullanılır.

Docker Hub

Docker Docker Hub bağlantısı'nın altındaki Kullanıcı Adı seçeneğini belirleyin ve hizmet bağlantısını doğrulamak ve oluşturmak için gereken kullanıcı adını ve parolayı belirtin.

Google Container Registry

Aşağıdaki adımlar, Google Container Registry ile ilişkili Docker kayıt defteri hizmeti bağlantısının oluşturulmasını adım adım Container Registry:

  1. Projenizi GCP Konsolu'nda açın ve ardından Cloud Shell

  2. Proje kimliği ve İşlem Altyapısı bölge seçeneklerinizi yazarken zaman kazanmak için aşağıdaki komutları çalıştırarak varsayılan yapılandırma değerlerini ayarlayın:

    gcloud config set project [PROJECT_NAME]
    gcloud config set compute/zone [ZONE]
    
  3. yerine GCP projenizin adını, yerine de kaynak oluşturmak için kullanmak istediğiniz [PROJECT_NAME] [ZONE] bölgenin adını yazın. Hangi bölgenin seçeceğinizden emin değilseniz us-central1-a kullanın. Örnek:

    gcloud config set project azure-pipelines-test-project-12345
    gcloud config set compute/zone us-central1-a
    
  4. Projeniz için Container Registry API'sini etkinleştirin:

    gcloud services enable containerregistry.googleapis.com
    
  5. Docker görüntülerini yayımlamak Azure Pipelines hizmet hesabı oluşturun:

    gcloud iam service-accounts create azure-pipelines-publisher --display-name "Azure Pipelines Publisher"
    
  6. Hizmet Depolama Yönetici IAM rolünü attayabilirsiniz:

    PROJECT_NUMBER=$(gcloud projects describe \
    $(gcloud config get-value core/project) \
    --format='value(projectNumber)')
    
    AZURE_PIPELINES_PUBLISHER=$(gcloud iam service-accounts list \
        --filter="displayName:Azure Pipelines Publisher" \
        --format='value(email)')
    
    gcloud projects add-iam-policy-binding \
        $(gcloud config get-value core/project) \
        --member serviceAccount:$AZURE_PIPELINES_PUBLISHER \
        --role roles/storage.admin
    
  7. Hizmet hesabı anahtarı oluşturma:

    gcloud iam service-accounts keys create \
    azure-pipelines-publisher.json --iam-account $AZURE_PIPELINES_PUBLISHER
    
    tr -d '\n' < azure-pipelines-publisher.json > azure-pipelines-publisher-oneline.json
    

    Kod Düzenleyicisi'ni başlatmak için uygulamanın sağ üst köşesindeki düğmesine Cloud Shell:

    Rozet

  8. named azure-pipelines-publisher-oneline.json dosyasını açın. Aşağıdaki adımlardan biri içinde bu dosyanın içeriğine ihtiyacınız olacak:

  9. Kuruluş Azure DevOps Ayarları'Project seçin ve sonra da -Pipelines -> Bağlantıları'> seçin.

  10. Yeni hizmet bağlantısı'a tıklayın ve Docker Kayıt Defteri'ni seçin

  11. İletişim kutusuna aşağıdaki alanların değerlerini girin:

  • Docker Registry: https://gcr.io/[PROJECT-ID] , burada [PROJECT-ID] GCP projenizin adıdır.
  • Docker Kimliği:_json_key
  • Docker Parolası: içeriğini yapıştırın azure-pipelines-publisher-oneline.json
  • Hizmet bağlantı adı:gcrServiceConnection
  1. Hizmet bağlantısını oluşturmak için Kaydet'e tıklayın