Azure Container Registry görevleriyle kapsayıcı görüntüsü derlemelerini ve bakımını otomatikleştirme

Kapsayıcılar, uygulama ve geliştirici bağımlılıklarını altyapı ve işletim gereksinimlerinden yalıtarak yeni sanallaştırma düzeyleri sağlar. Geriye kalan, bu uygulama sanallaştırmasının kapsayıcı yaşam döngüsü boyunca nasıl yönetildiğini ve düzeltme eki uygulanıp uygulanmamasını ele alma ihtiyacıdır.

Azure Container Registry görevleri şu özelliklerden oluşan bir pakettir:

  • Linux, Windows ve ARM gibi platformlar için bulut tabanlı kapsayıcı görüntüsü oluşturma olanağı sağlar.
  • İsteğe bağlı kapsayıcı görüntüsü derlemeleriyle bir uygulama geliştirme döngüsünün ilk kısımlarını buluta genişletin.
  • Kaynak kodu güncelleştirmeleri, kapsayıcının temel görüntüsünde yapılan güncelleştirmeler veya zamanlayıcılar tarafından tetiklenen otomatik derlemeleri etkinleştirin.

Örneğin, temel görüntüye yönelik güncelleştirme tetikleyicileriyle Docker kapsayıcılarınız için işletim sistemi ve çerçeve düzeltme eki uygulama işlemini otomatikleştirebilirsiniz. Bu tetikleyiciler sabit kapsayıcıların ilkelerine uyarken güvenli ortamları korumanıza yardımcı olabilir.

Önemli

Azure Container Registry görev çalıştırmaları, Azure ücretsiz kredilerinden geçici olarak duraklatılır. Bu duraklama mevcut görev çalıştırmalarını etkileyebilir. Sorunlarla karşılaşırsanız ekibimizin ek rehberlik sağlaması için bir destek talebi açın.

Uyarı

Komut satırında veya URI'nin bir parçası olarak sağlanan tüm bilgilerin Azure Container Registry (ACR) tanılama izlemesinin bir parçası olarak günlüğe kaydedilebileceğini lütfen unutmayın. Buna kimlik bilgileri, GitHub kişisel erişim belirteçleri ve diğer güvenli bilgiler gibi hassas veriler dahildir. Olası güvenlik risklerini önlemek için dikkatli olun; tanılama günlüğüne tabi olan komut satırlarına veya URI'lere hassas ayrıntıları eklemekten kaçınmak önemlidir.

Görev senaryoları

Azure Container Registry görevleri, kapsayıcı görüntüleri ve diğer yapıtları oluşturmak ve korumak için çeşitli senaryoları destekler. Bu makalede hızlı görevler, otomatik olarak tetiklenen görevler ve çok adımlı görevler açıklanmaktadır.

Her görevin, kapsayıcı görüntüsü veya başka bir yapıt oluşturmak için kullanılan kaynak dosyaların konumu olan ilişkili bir kaynak kodu bağlamı vardır. Örnek bağlamlar git deposu ve yerel dosya sistemidir.

Görevler çalıştırma değişkenlerinden de yararlanabilir, böylece görev tanımlarını yeniden kullanabilir ve resimler ve yapıtlar için etiketleri standartlaştırabilirsiniz.

Hızlı görevler

İç döngü geliştirme döngüsü, kaynak denetimine işlemeden önce uygulamanızı kod yazma, derleme ve test etme yinelemeli işlemidir. Kapsayıcı yaşam döngüsü yönetiminin başlangıcıdır.

Azure Container Registry görevlerindeki hızlı görev özelliği, kapsayıcı görüntüsü derlemelerinizi Azure'a yükleyerek tümleşik bir geliştirme deneyimi sağlayabilir. Azure'da, yerel Docker Altyapısı yüklemesine gerek kalmadan isteğe bağlı olarak tek bir kapsayıcı görüntüsü derleyebilir ve kapsayıcı kayıt defterine gönderebilirsiniz. Bulutta düşünündocker builddocker push. Hızlı görevlerle, otomatik derleme tanımlarınızı doğrulayabilir ve kodunuzu işlemeden önce olası sorunları yakalayabilirsiniz.

Tanıdık docker build biçimi kullanarak Azure CLI'daki az acr build komutu bir bağlam alır. Komut daha sonra bağlamı Azure Container Registry'ye gönderir ve (varsayılan olarak), tamamlandıktan sonra yerleşik görüntüyü kayıt defterine gönderir.

Azure Container Registry görevleri kapsayıcı yaşam döngüsü temeli olarak tasarlanmıştır. Örneğin, Azure Container Registry görevlerini sürekli tümleştirme ve sürekli teslim (CI/CD) çözümünüzle tümleştirebilirsiniz. Az login komutunu bir hizmet sorumlusuyla çalıştırırsanız, CI/CD çözümünüz görüntü derlemelerini başlatmak için az acr build komutları verebilir.

Hızlı görevlerin nasıl kullanılacağını öğrenmek için Azure Container Registry görevlerini kullanarak kapsayıcı görüntüleri oluşturma ve dağıtmaya yönelik hızlı başlangıç ve öğreticiye bakın.

İpucu

Dockerfile olmadan doğrudan kaynak koddan görüntü oluşturmak ve göndermek istiyorsanız, Azure Container Registry az acr pack build komutunu (önizleme) sağlar. Bu araç, Buluta Özel Derleme Paketleri kullanarak uygulama kaynak kodundan bir görüntü derleyip göndermektedir.

Otomatik olarak tetiklenen görevler

Görüntü oluşturmak için bir veya daha fazla tetikleyiciyi etkinleştirin.

Kaynak kodu güncelleştirmesinde görev tetikleme

Kod işlendiğinde veya çekme isteği yapıldığında veya güncelleştirildiğinde GitHub veya Azure DevOps'taki genel veya özel bir Git deposuna kapsayıcı görüntüsü derlemesi veya çok adımlı görev tetikleyebilirsiniz. Örneğin, git deposu ve isteğe bağlı olarak bir dal ve Dockerfile belirterek az acr task create Azure CLI komutuyla bir derleme görevi yapılandırın. Ekibiniz depodaki kodu güncelleştirdiğinde, Azure Container Registry görevlerinde oluşturulan bir web kancası depoda tanımlanan kapsayıcı görüntüsünün bir derlemesini tetikler.

Azure Container Registry görevleri, bir Git deposunu görevin bağlamı olarak ayarladığınızda aşağıdaki tetikleyicileri destekler:

Tetikle Varsayılan olarak etkin
İşleme Yes
Çekme isteği Hayır

Not

Şu anda Azure Container Registry görevleri GitHub Enterprise depolarında işleme veya çekme isteği tetikleyicilerini desteklememektedir.

Kaynak kodu işlemelerinde derlemeleri tetiklemeyi öğrenmek için bkz . Azure Container Registry görevleriyle kapsayıcı görüntüsü derlemelerini otomatikleştirme.

Kişisel erişim belirteci

Kaynak kodu güncelleştirmeleri için tetikleyici yapılandırmak için, genel veya özel GitHub veya Azure DevOps deposunda web kancasını ayarlamak üzere göreve kişisel erişim belirteci sağlamanız gerekir. Kişisel erişim belirteci için gerekli kapsamlar aşağıdaki gibidir:

Depo türü GitHub Azure DevOps
Genel depo repo:status
public_repo
Kod (Okuma)
Özel depo depo (Tam denetim) Kod (Okuma)

Kişisel erişim belirteci oluşturmak için GitHub veya Azure DevOps belgelerine bakın.

İşletim sistemi ve çerçeve düzeltme eki uygulama işlemini otomatikleştirme

Kapsayıcı derleme iş akışınızı geliştirmeye yönelik Azure Container Registry görevlerinin gücü, temel görüntüye yönelik bir güncelleştirmeyi algılama özelliğinden gelir. Temel görüntü, çoğu kapsayıcı görüntüsünün bir özelliğidir. Bu, bir veya daha fazla uygulama görüntüsünün temel aldığı bir üst resimdir. Temel görüntüler genellikle işletim sistemini ve bazen de uygulama çerçevelerini içerir.

Bir uygulama görüntüsü oluştururken temel görüntüdeki bağımlılığı izlemek için bir Azure Container Registry görevi ayarlayabilirsiniz. Güncelleştirilmiş temel görüntü kayıt defterinize gönderildiğinde veya Docker Hub gibi bir genel depoda bir temel görüntü güncelleştirildiğinde, Azure Container Registry görevleri bunu temel alan tüm uygulama görüntülerini otomatik olarak oluşturabilir. Bu otomatik algılama ve yeniden derleme ile Azure Container Registry görevleri, güncelleştirilmiş temel görüntünüze başvuran her uygulama görüntüsünü el ile izlemek ve güncelleştirmek için normalde gereken zamandan ve çabadan tasarruf etmenizi sağlar.

Daha fazla bilgi için bkz . Azure Container Registry görevleri için temel görüntü güncelleştirmeleri hakkında ve Öğretici: Azure kapsayıcı kayıt defterinde temel görüntü güncelleştirildiğinde kapsayıcı görüntüsü derlemelerini otomatikleştirme.

Görev zamanlama

Görevi oluştururken veya güncelleştirirken bir veya daha fazla zamanlayıcı tetikleyicisi ayarlayarak görev zamanlayabilirsiniz. Görev zamanlamak, kapsayıcı iş yüklerini tanımlanmış bir zamanlamaya göre çalıştırmak veya düzenli olarak kayıt defterinize gönderilen görüntülerde bakım işlemleri veya testler çalıştırmak için yararlıdır. Daha fazla bilgi için bkz . Azure Container Registry görevini tanımlı bir zamanlamaya göre çalıştırma.

Çok adımlı görevler

Birden çok kapsayıcıyı temel alan çok adımlı iş akışlarıyla Azure Container Registry görevlerinin tek görüntü derleme ve gönderme özelliğini genişletin.

Çok adımlı görevler, bulutta kapsayıcı görüntülerini derleme, test etme ve düzeltme eki uygulama için adım tabanlı görev tanımı ve yürütme sağlar. YAML dosyasında tanımlanan görev adımları, kapsayıcı görüntüleri veya diğer yapıtlar için ayrı derleme ve gönderme işlemlerini belirtir. Ayrıca, her adımın kapsayıcıyı kendi yürütme ortamı olarak kullanmasıyla bir veya daha fazla kapsayıcının yürütülmesini de tanımlayabilirler.

Örneğin, aşağıdaki adımları otomatik hale getiren çok adımlı bir görev oluşturabilirsiniz:

  1. Web uygulaması görüntüsü oluşturma.
  2. Web uygulaması kapsayıcısını çalıştırın.
  3. Web uygulaması test görüntüsü oluşturun.
  4. Çalışan uygulama kapsayıcısına karşı testler gerçekleştiren web uygulaması test kapsayıcısını çalıştırın.
  5. Testler başarılı olursa helm grafiği arşiv paketi oluşturun.
  6. Yeni Helm grafiği arşiv paketini kullanarak bir helm upgrade görev gerçekleştirin.

Çok adımlı görevler, adımlar arasında bağımlılık desteğiyle bir görüntünün binasını, çalışmasını ve testini daha derlenebilir adımlara bölmenizi sağlar. Azure Container Registry görevlerinde çok adımlı görevlerle görüntü oluşturma, test etme, işletim sistemi ve çerçeve düzeltme eki uygulama iş akışları üzerinde daha ayrıntılı denetime sahip olursunuz.

Azure Container Registry görevlerinde çok adımlı derleme, test ve düzeltme eki görevlerini çalıştırma hakkında daha fazla bilgi edinin.

Bağlam konumları

Aşağıdaki tabloda Azure Container Registry görevleri için desteklenen bağlam konumlarının örnekleri gösterilmektedir:

Bağlam konumu Açıklama Örnek
Yerel dosya sistemi Yerel dosya sistemindeki bir dizindeki dosyalar. /home/user/projects/myapp
GitHub ana dalı Ortak veya özel GitHub deposunun ana (veya diğer varsayılan) dalındaki dosyalar. https://github.com/gituser/myapp-repo.git
GitHub dalı Genel veya özel GitHub deposunun belirli bir dalı. https://github.com/gituser/myapp-repo.git#mybranch
GitHub alt klasörü Ortak veya özel GitHub deposundaki bir alt klasördeki dosyalar. Örnek, dal ve alt klasör belirtiminin birleşimini gösterir. https://github.com/gituser/myapp-repo.git#mybranch:myfolder
GitHub işleme Genel veya özel github deposundaki belirli işleme. Örnekte bir işleme karması (SHA) ve alt klasör belirtimi birleşimi gösterilmektedir. https://github.com/gituser/myapp-repo.git#git-commit-hash:myfolder
Azure DevOps alt klasörü Ortak veya özel Azure deposundaki bir alt klasör içindeki dosyalar. Örnek, dal ve alt klasör belirtiminin birleşimini gösterir. https://dev.azure.com/user/myproject/_git/myapp-repo#mybranch:myfolder
Uzak tarball Uzak bir web sunucusundaki sıkıştırılmış arşivdeki dosyalar. http://remoteserver/myapp.tar.gz
Kapsayıcı kayıt defterinde yapıt Kapsayıcı kayıt defteri deposundaki OCI yapıt dosyaları. oci://myregistry.azurecr.io/myartifact:mytag

Not

Kaynak kodu güncelleştirmesi tarafından tetiklenen bir görevin bağlamı olarak Git deposunu kullanırken, kişisel erişim belirteci sağlamanız gerekir.

Görüntü platformları

Varsayılan olarak, Azure Container Registry görevleri Linux işletim sistemi ve AMD64 mimarisi için görüntüler oluşturur. --platform Diğer mimariler için Windows görüntüleri veya Linux görüntüleri oluşturmak için etiketi belirtin. İşletim sistemini ve isteğe bağlı olarak desteklenen bir mimariyi işletim sistemi/mimari biçiminde belirtin (örneğin, --platform Linux/arm). ARM mimarileri için isteğe bağlı olarak işletim sistemi/mimari/değişken biçiminde bir değişken belirtin (örneğin, --platform Linux/arm64/v8).

OS Mimari
Linux AMD64
ARM
ARM64
386
Windows AMD64

Görev çıktısı

Her görev çalıştırması, görev adımlarının başarıyla çalıştırılıp çalıştırılmadığını belirlemek için inceleyebileceğiniz günlük çıktısı oluşturur. Bir görevi el ile tetiklediğinizde, görev çalıştırması için günlük çıkışı konsola akışla gönderilir ve daha sonra alınmak üzere depolanır. Bir görev otomatik olarak tetiklendiğinde (örneğin, bir kaynak kodu işlemesi veya temel görüntü güncelleştirmesi) görev günlükleri yalnızca depolanır. Azure portalında çalıştırma günlüklerini görüntüleyin veya az acr task logs komutunu kullanın.

Görev günlüklerini görüntüleme ve yönetme hakkında daha fazla bilgi edinin.

  • Bulutta kapsayıcı görüntüsü derlemelerini ve bakımını otomatikleştirmeye hazır olduğunuzda bkz . Öğretici: Azure Container Registry görevleriyle bulutta kapsayıcı görüntüleri oluşturma ve dağıtma.

  • İsteğe bağlı olarak, Visual Studio Code için Docker uzantısı ve Azure Hesabı uzantısı hakkında bilgi edinin. Bir kapsayıcı kayıt defterinden görüntü çekmek, kapsayıcı kayıt defterine görüntü göndermek veya Azure Container Registry görevlerini çalıştırmak için bu uzantıları kullanabilirsiniz.