Azure Pipelines'ı kullanarak kayıt defterlerine kapsayıcı görüntüleri oluşturma ve gönderme
Makale
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
Bu makale, Azure Pipelines'ı kullanarak Azure Container Registry, Docker Hub ve Google Artifact Registry'ye Docker görüntüsü oluşturmak ve göndermek için kurulum ve yapılandırmada size yol gösterir. Buna ek olarak, işlem hattınızda güvenli kimlik doğrulaması için kullanımını System.AccessToken ayrıntılı olarak açıklar.
Bu makale, Docker Hub ve Google Artifact Registry'ye Docker görüntüsü derlemek ve göndermek için Azure Pipelines'ı kullanmaya yönelik kurulum ve yapılandırmada size yol gösterir. Buna ek olarak, işlem hattınızda güvenli kimlik doğrulaması için kullanımını System.AccessToken ayrıntılı olarak açıklar.
Docker görüntüsünü derlemek ve kapsayıcı kayıt defterine göndermek için YAML işlem hattı oluşturmayı öğreneceksiniz. Docker@2 görevi, görüntüyü derlemek ve kapsayıcı kayıt defterine göndermek için kullanılır.
Önkoşullar
Azure DevOps projesi.
Kapsayıcı kayıt defteri (Docker Hub, Google Artifact Registry veya Azure Container Registry).
Dockerfile içeren bir GitHub deposu. Deponuz yoksa örnek depoyu kullanabilirsiniz Tarayıcınızda örnek depoya gidin ve gitHub hesabınıza çatal oluşturun.
Docker. Şirket içinde barındırılan bir aracı kullanıyorsanız Docker'ın yüklü olduğundan ve Docker altyapısının yükseltilmiş ayrıcalıklarla çalıştığından emin olun. Microsoft tarafından barındırılan aracılarda Docker önceden yüklenmiş olarak bulunur.
Azure DevOps projesi.
Kapsayıcı kayıt defteri (Docker Hub veya Google Artifact Registry).
Dockerfile içeren bir GitHub deposu. Deponuz yoksa örnek depoyu kullanabilirsiniz Tarayıcınızda örnek depoya gidin ve gitHub hesabınıza çatal oluşturun.
Docker. Şirket içinde barındırılan bir aracı kullanıyorsanız Docker'ın yüklü olduğundan ve Docker altyapısının yükseltilmiş ayrıcalıklarla çalıştığından emin olun. Microsoft tarafından barındırılan aracılarda Docker önceden yüklenmiş olarak bulunur.
Docker hizmet bağlantısı oluşturma
Kapsayıcı görüntülerini kayıt defterine göndermeden önce Azure DevOps'ta bir hizmet bağlantısı oluşturmanız gerekir. Bu hizmet bağlantısı, kapsayıcı kayıt defteriyle güvenli bir şekilde kimlik doğrulaması yapmak için gereken kimlik bilgilerini depolar. Yeni bir hizmet bağlantısı oluşturmak için Azure DevOps projenizdeki Hizmet bağlantıları sayfasına gidin ve Docker Kayıt Defteri bağlantı türünü seçin.
Docker Hub ve Google Artifact Registry için hizmet bağlantısı oluşturmak için farklı işlemler vardır.
Docker kayıt defteri hizmeti bağlantısı'nın altında Azure Container Registry seçeneğini belirleyin ve seçtiğiniz kimlik doğrulama yönteminin gerektirdiği bilgileri sağlayın.
Azure Container Registry'ye görüntü oluşturmak ve göndermek için Docker şablonunu kullanarak işlem hattınızı da oluşturabilirsiniz. Bu şablon sizin için otomatik olarak bir hizmet bağlantısı ve YAML işlem hattı oluşturur. Daha fazla bilgi için bkz . Docker YAML kullanarak görüntüleri derleme ve Azure Container Registry'ye gönderme.
Google Artifact Registry ile ilişkili bir Docker hizmet bağlantısı oluşturmak için:
Projenizi Google Cloud Platform (GCP) Konsolu'nda açın ve ardından Cloud Shell'i açın
Proje kimliğinizi 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]
değerini [PROJECT_NAME] GCP projenizin adıyla, değerini ise kaynak oluşturmak için kullanacağınız bölgenin adıyla değiştirin [ZONE] . Hangi bölgeyi seçeceğiniz konusunda emin değilseniz kullanın us-central1-a. Örneğin:
gcloud config set project azure-pipelines-test-project-12345
gcloud config set compute/zone us-central1-a
Projeniz için Artifact Registry API'sini etkinleştirin:
Docker@2 görevi, Azure Pipelines içinde Docker görüntüleri oluşturma, gönderme ve yönetme sürecini kolaylaştırmak için tasarlanmıştır. Bu görev derleme, gönderme, oturum açma, oturumu kapatma, başlatma, durdurma ve çalıştırma gibi çok çeşitli Docker komutlarını destekler.
Aşağıdaki adımlarda, görüntüyü oluşturmak ve göndermek için Docker@2 görevini kullanan bir YAML işlem hattı oluşturma adımları özetlenmiştir.
Azure DevOps projenize gidin ve sol taraftaki menüden İşlem Hatları'nı seçin.
Yeni işlem hattı oluşturmak için Yeni işlem hattı'na tıklayın.
Kaynak kodunuzun konumu olarak GitHub veya GitHub Enterprise Server'ı seçin.
Henüz yapmadıysanız Azure Pipelines'ı GitHub Enterprise Server hesabınıza bağlanma yetkisi verin.
GitHub Enterprise Server'a Bağlan'ı seçin.
Hesap ayrıntılarınızı girin ve Doğrula ve kaydet'i seçin.
Deponuzu seçin.
GitHub'a yeniden yönlendirildiyseniz
Temel bir işlem hattı yapılandırması oluşturmak için Starter işlem hattı şablonunu seçin.
azure-pipelines.yml içeriğini aşağıdaki kodla değiştirin.
Linux veya Windows uygulaması dağıtıp dağıtmadığınıza bağlı olarak, sırasıyla veya windows-latestolarak ubuntu-latest ayarlandığından vmImage emin olun. Şirket içinde barındırılan aracı kullanıyorsanız Docker özelliğine sahip şirket içinde barındırılan aracıyı içeren havuzun adına ayarlayın vmImage . Docker yüklü bir aracının seçildiğinden demands: docker emin olmak için özelliğini ekleyebilirsiniz.
değerini daha önce oluşturduğunuz Docker hizmet bağlantısının adıyla değiştirin <docker connection> .
değerini, görüntüyü göndermek istediğiniz kapsayıcı kayıt defterindeki deponun adıyla değiştirin <target repository name> . Örneğin, <your-docker-hub-username>/<repository-name>.
azure-pipelines.yml dosyasını deponuza kaydettiğinizde, bir işleme iletisi eklemeniz istenir. Bir ileti girin ve kaydet ve çalıştır'ı seçin.
Şirket içinde barındırılan aracıları kullanırken Docker'ın aracının konağına yüklendiğinden ve Docker altyapısının/daemon'un yükseltilmiş ayrıcalıklarla çalıştığından emin olun.
Görüntüyü oluşturmak için Docker aracının konağına yüklenmelidir ve Docker altyapısı/daemon yükseltilmiş ayrıcalıklarla çalışıyor olmalıdır. YAML işlem hattı düzenleyicisini kullanarak işlem hattınızı oluşturmak için aşağıdaki adımları kullanın.
Koleksiyonunuz gidin ve bir proje oluşturun.
Projenizde İşlem Hatları'yı seçin.
İşlem Hattı Oluştur'u seçin.
Kaynak kodunuzun konumu olarak GitHub Enterprise Server'ı seçin.
Henüz yapmadıysanız Azure Pipelines'ı GitHub Enterprise Server hesabınıza bağlanma yetkisi verin.
GitHub Enterprise Server'a Bağlan'ı seçin.
Hesap ayrıntılarınızı girin ve Doğrula ve kaydet'i seçin.
Deponuzu seçin.
Azure Pipelines uygulamasını yüklemek için GitHub'a yönlendirilirseniz Onayla ve yükle'yi seçin.
İşlem hattınızı yapılandırmak için Docker görüntüsü oluştur şablonunu seçin.
YAML işlem hattı düzenleyicisinde YAML dosyasının içeriğini aşağıdaki kodla değiştirin. Havuz adını, şirket içinde barındırılan aracınızı içeren havuzun adıyla Docker özelliğiyle değiştirin.
Linux veya Windows uygulaması dağıtıp dağıtmadığınıza bağlı olarak, sırasıyla veya windows-latestolarak ubuntu-latest ayarlandığından vmImage emin olun.
değerini, görüntüyü göndermek istediğiniz kapsayıcı kayıt defterindeki deponun adıyla değiştirin <target repository name> . Örneğin, <your-docker-hub-username>/<repository-name>.
değerini daha önce oluşturduğunuz Docker hizmet bağlantısının adıyla değiştirin <docker connection> .
Kaydet ve çalıştır sayfasında Kaydet ve yeniden çalıştır'ı seçin.
kapsayıcı kayıt defterine derlenen ve gönderilen Docker görüntüsünü görmek için işlem hattının çalışmasını izleyebilir ve günlükleri görüntüleyebilirsiniz.
Docker@2 görevi, görüntüyü derlemek ve kapsayıcı kayıt defterine göndermek için kullanılır.
Docker@2 görevi, Azure Pipelines içinde Docker görüntüleri oluşturma, gönderme ve yönetme sürecini kolaylaştırmak için tasarlanmıştır. Bu görev derleme, gönderme, oturum açma, oturumu kapatma, başlatma, durdurma ve çalıştırma gibi çok çeşitli Docker komutlarını destekler.
Aşağıdaki adımlarda, görüntüyü oluşturmak ve göndermek için Docker@2 görevini kullanan bir YAML işlem hattı oluşturma adımları özetlenmiştir.
Azure DevOps projenize gidin ve sol taraftaki menüden İşlem Hatları'nı seçin.
Yeni işlem hattı oluşturmak için Yeni işlem hattı'na tıklayın.
Kaynak kodunuzun konumu olarak GitHub veya GitHub Enterprise Server'ı seçin.
Henüz yapmadıysanız Azure Pipelines'ı GitHub Enterprise Server hesabınıza bağlanma yetkisi verin.
GitHub Enterprise Server'a Bağlan'ı seçin.
Hesap ayrıntılarınızı girin ve Doğrula ve kaydet'i seçin.
Deponuzu seçin.
Temel bir işlem hattı yapılandırması oluşturmak için Starter işlem hattı şablonunu seçin.
azure-pipelines.yml içeriğini aşağıdaki kodla değiştirin.
Linux veya Windows uygulaması dağıtıp dağıtmadığınıza bağlı olarak, sırasıyla veya windows-latestolarak ubuntu-latest ayarlandığından vmImage emin olun. Şirket içinde barındırılan aracı kullanıyorsanız Docker özelliğine sahip şirket içinde barındırılan aracıyı içeren havuzun adına ayarlayın vmImage . Docker yüklü bir aracının seçildiğinden demands: docker emin olmak için özelliğini ekleyebilirsiniz.
değerini daha önce oluşturduğunuz Docker hizmet bağlantısının adıyla değiştirin <docker connection> .
değerini, görüntüyü göndermek istediğiniz kapsayıcı kayıt defterindeki deponun adıyla değiştirin <target repository name> . Örneğin, myregistry.azurecr.io/myimage.
Docker@2 görevi, Azure Pipelines içinde Docker görüntüleri oluşturma, gönderme ve yönetme sürecini kolaylaştırmak için tasarlanmıştır. Bu görev derleme, gönderme, oturum açma, oturumu kapatma, başlatma, durdurma ve çalıştırma gibi çok çeşitli Docker komutlarını destekler.
Aşağıdaki adımlarda, görüntüyü oluşturmak ve göndermek için Docker@2 görevini kullanan bir YAML işlem hattı oluşturma adımları özetlenmiştir.
Azure DevOps projenize gidin ve sol taraftaki menüden İşlem Hatları'nı seçin.
Yeni işlem hattı oluşturmak için Yeni işlem hattı'na tıklayın.
Kaynak kodunuzun konumu olarak GitHub veya GitHub Enterprise Server'ı seçin.
Henüz yapmadıysanız Azure Pipelines'ı GitHub Enterprise Server hesabınıza bağlanma yetkisi verin.
GitHub Enterprise Server'a Bağlan'ı seçin.
Hesap ayrıntılarınızı girin ve Doğrula ve kaydet'i seçin.
Deponuzu seçin.
Temel bir işlem hattı yapılandırması oluşturmak için Starter işlem hattı şablonunu seçin.
azure-pipelines.yml içeriğini aşağıdaki kodla değiştirin.
Linux veya Windows uygulaması dağıtıp dağıtmadığınıza bağlı olarak, sırasıyla veya windows-latestolarak ubuntu-latest ayarlandığından vmImage emin olun. Şirket içinde barındırılan aracı kullanıyorsanız Docker özelliğine sahip şirket içinde barındırılan aracıyı içeren havuzun adına ayarlayın vmImage . Docker yüklü bir aracının seçildiğinden demands: docker emin olmak için özelliğini ekleyebilirsiniz.
değerini daha önce oluşturduğunuz Docker hizmet bağlantısının adıyla değiştirin <docker connection> .
değerini, görüntüyü göndermek istediğiniz kapsayıcı kayıt defterindeki deponun adıyla değiştirin <target repository name> . Örneğin, <your-project-id>/<your-image-name>.
azure-pipelines.yml dosyasını deponuza kaydettiğinizde, bir işleme iletisi eklemeniz istenir. Bir ileti girin ve kaydet ve çalıştır'ı seçin.
Şirket içinde barındırılan aracıları kullanırken Docker'ın aracının konağına yüklendiğinden ve Docker altyapısının/daemon'un yükseltilmiş ayrıcalıklarla çalıştığından emin olun.
Görüntüyü oluşturmak için Docker aracının konağına yüklenmelidir ve Docker altyapısı/daemon yükseltilmiş ayrıcalıklarla çalışıyor olmalıdır. YAML işlem hattı düzenleyicisini kullanarak işlem hattınızı oluşturmak için aşağıdaki adımları kullanın.
Koleksiyonunuz gidin ve bir proje oluşturun.
Projenizde İşlem Hatları'yı seçin.
İşlem Hattı Oluştur'u seçin.
Kaynak kodunuzun konumu olarak GitHub Enterprise Server'ı seçin.
Henüz yapmadıysanız Azure Pipelines'ı GitHub Enterprise Server hesabınıza bağlanma yetkisi verin.
GitHub Enterprise Server'a Bağlan'ı seçin.
Hesap ayrıntılarınızı girin ve Doğrula ve kaydet'i seçin.
Deponuzu seçin.
İşlem hattınızı yapılandırmak için Docker görüntüsü oluştur şablonunu seçin.
YAML işlem hattı düzenleyicisinde YAML dosyasının içeriğini aşağıdaki kodla değiştirin. Havuz adını, şirket içinde barındırılan aracınızı içeren havuzun adıyla Docker özelliğiyle değiştirin.
Linux veya Windows uygulaması dağıtıp dağıtmadığınıza bağlı olarak, sırasıyla veya windows-latestolarak ubuntu-latest ayarlandığından vmImage emin olun.
değerini, görüntüyü göndermek istediğiniz kapsayıcı kayıt defterindeki deponun adıyla değiştirin <target repository name> . Örneğin, <your-project-id>/<your-image-name>.
değerini daha önce oluşturduğunuz Docker hizmet bağlantısının adıyla değiştirin <docker connection> .
Kaydet ve çalıştır sayfasında Kaydet ve yeniden çalıştır'ı seçin.
kapsayıcı kayıt defterine derlenen ve gönderilen Docker görüntüsünü görmek için işlem hattının çalışmasını izleyebilir ve günlükleri görüntüleyebilirsiniz.
Docker@2 Görevinde Kimlik Doğrulaması için System.AccessToken Kullanma
Azure DevOps tarafından sağlanan öğesini System.AccessToken kullanarak kapsayıcı kayıt defteriyle kimlik doğrulaması yapabilirsiniz. Bu belirteç, hassas kimlik bilgilerini göstermeden işlem hattınızdaki kaynaklara güvenli erişim sağlar.
Aşağıdaki YAML işlem hattı örneği, kapsayıcı kayıt defterinde oturum açmak ve Docker görüntüsünü göndermek için Docker@2 görevi kullanılır. System.AccessToken, Docker komutlarının kimliğini doğrulamak için bir ortam değişkeni olarak ayarlanır.
değerini Docker kayıt defteri hizmeti bağlantı adınızla değiştirin <docker connection> .
değerini Docker deponuzun adıyla değiştirin <your repository> .