Azure Pipelines'ı kullanarak kayıt defterlerine kapsayıcı görüntüleri oluşturma ve gönderme
Azure DevOps Services
Bu makale, Docker görüntüsünü derlemek ve Azure Container Registry veya Docker Hub'a göndermek için işlem hattı oluşturma işleminde size yol gösterir.
Önkoşullar
Ürün | Gereksinimleri |
---|---|
Azure DevOps | - Bir Azure DevOps projesi. - İzinleri: - Projedeki tüm işlem hatlarına erişim vermek için: - Hizmet bağlantıları oluşturmak için: - Ş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. |
GitHub | - GitHub hesabı. - Dockerfile içeren bir GitHub deposu. Kendi projeniz yoksa örnek depo kullanın. - Azure Pipelines'ı yetkilendirmek için GitHub hizmet bağlantısı. |
Azure | - Azure aboneliği. - Bir Azure Container Registry. |
Ürün | Gereksinimleri |
---|---|
Azure DevOps | - Bir Azure DevOps projesi. - İzinleri: - Projedeki tüm işlem hatlarına erişim vermek için: - Hizmet bağlantıları oluşturmak için: - Ş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. |
GitHub | - GitHub hesabı. - Dockerfile içeren bir GitHub deposu. Kendi projeniz yoksa örnek depo kullanın. - Azure Pipelines'ı yetkilendirmek için GitHub hizmet bağlantısı. |
Docker Hub | - Docker Hub hesabı. - Docker Hub görüntü deposu. |
Docker kayıt defteri hizmeti 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. Daha fazla bilgi için bkz. Docker Kayıt Defteri hizmet bağlantıları.
Azure DevOps projenizde Proje ayarları>Hizmet bağlantılarıöğesini seçin.
Yeni hizmet bağlantısı ve Docker Kayıt Defteri seçin.
Docker Hub
seçin ve aşağıdaki bilgileri girin: Alan Açıklama Docker ID Docker kimliğinizi girin. Docker Parola Docker parolanızı girin. Hizmet bağlantı adı Hizmet bağlantısı için bir ad girin. tüm işlem hatlarına erişim izni ver Tüm işlem hatlarına erişim vermek için bu seçeneği belirleyin. Doğrula'yı seçin vekaydedin.
Docker görüntüsü oluşturmak ve göndermek için işlem hattı oluşturma
- YAML
- Klasik
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.
Görüntüyü oluşturmak ve göndermek için Docker@2 görevini kullanan bir YAML işlem hattı oluşturmak için aşağıdaki adımları kullanın.
Azure DevOps projenizde
İşlem Hatları 'ını ve Yeni işlem hattı'ü seçin. Kaynak kodunuzun konumu olarak GitHub
seçin ve deponuzu seçin. - Oturum açmak için GitHub'a yönlendirilirseniz GitHub kimlik bilgilerinizi girin.
- Azure Pipelines uygulamasını yüklemek için GitHub'a yönlendirilirseniz Onayla ve yükle'yi 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:
trigger: - main pool: vmImage: 'ubuntu-latest' variables: repositoryName: '<target repository name>' steps: - task: Docker@2 inputs: containerRegistry: '<docker registry service connection>' repository: $(repositoryName) command: 'buildAndPush' Dockerfile: '**/Dockerfile'
İşlem hattı YAML dosyasını aşağıdaki gibi düzenleyin:
- değerini, görüntüyü göndermek istediğiniz kapsayıcı kayıt defterindeki deponun adıyla değiştirin
<target repository name>
. -
<docker registry service connection>
değerini daha önce oluşturduğunuz Docker kayıt defteri hizmeti bağlantısının adıyla değiştirin.
- değerini, görüntüyü göndermek istediğiniz kapsayıcı kayıt defterindeki deponun adıyla değiştirin
İşiniz bittiğinde Kaydet'i seçin ve>kaydedip çalıştırın.
Günlükleri görüntülemek ve işlem hattının başarıyla çalıştığını doğrulamak için İş'ni seçin.
- YAML
- Klasik
Azure DevOps projenize gidin ve sol taraftaki menüden İşlem Hatları'ni seçin.
Yeni işlem hattı seçin.
Kaynak kodunuzun konumu olarak GitHub
seçin ve deponuzu seçin. - Oturum açmak için GitHub'a yönlendirilirseniz GitHub kimlik bilgilerinizi girin.
- Azure Pipelines uygulamasını yüklemek için GitHub'a yönlendirilirseniz Onayla ve yükle'yi seçin.
Docker - Azure Container Registry şablonuna bir görüntü inşa edip gönderin
şablonunu seçin. Azure aboneliğinizi seçin ve devam.
Container Registry'nizi seçin ve ardından Doğrula veyapılandır'ı seçin.
Örnek YAML işlem hattı:
# Docker # Build and push an image to Azure Container Registry # https://docs.microsoft.com/azure/devops/pipelines/languages/docker trigger: - main resources: - repo: self variables: # Container registry service connection established during pipeline creation dockerRegistryServiceConnection: '7f9dc28e-5551-43ee-891f-33bf61a995de' imageRepository: 'usernamepipelinesjavascriptdocker' containerRegistry: 'repoistoryname.azurecr.io' dockerfilePath: '$(Build.SourcesDirectory)/app/Dockerfile' tag: '$(Build.BuildId)' # Agent VM image name 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)
Kaydet ve çalıştır'i seçin ve Kaydet ve çalıştır'i yeniden seçin.
Günlükleri görüntülemek ve işlem hattının başarıyla çalıştığını doğrulamak için İş'ni seçin.
Docker şablonu, Azure Container Registry'nize hizmet bağlantısını oluşturur ve Docker görüntüsünü derlemek ve kayıt defterine göndermek için Docker@2 görevini kullanı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.
Ş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.
İlgili makaleler
- Bir kapsayıcı görüntüsü oluştur
- Docker içerik güveni