ACR görevleriyle kapsayıcı görüntüsü derlemelerini ve bakımını otomatikleştirin
Kapsayıcılar, altyapı ve işletimsel gereksinimlerden uygulama ve geliştirici bağımlılıklarını yalıtmak için yeni sanallaştırma düzeyleri sağlar. Ancak, bu uygulama sanallaştırmanın kapsayıcı yaşam döngüsü üzerinde nasıl yönetildiğini ve düzeltme eki ekleneceğini ele alma gereksinimiyle birlikte kalır.
ACR görevleri nedir?
ACR görevleri Azure Container Registry içindeki bir özellik paketidir. Linux, Windows ve ARM dahil olmak üzere platformlar için bulut tabanlı kapsayıcı görüntüsü oluşturma olanağı sağlar ve docker kapsayıcılarınız için işletim sistemi ve çerçeve düzeltme ekini otomatik hale getirebilir. ACR görevleri, isteğe bağlı kapsayıcı görüntüsü Derlemeleriyle yalnızca "iç döngüyle" geliştirme döngüsünü buluta genişletmez, ancak kaynak kodu güncelleştirmeleri tarafından tetiklenen otomatik yapıları, kapsayıcının temel görüntüsüne veya zamanlayıcılara yönelik güncelleştirmeleri de sağlar. Örneğin, temel görüntü güncelleştirme Tetikleyicileri ile, işletim sistemi ve uygulama çerçevesi düzeltme eki uygulama iş akışınızı otomatikleştirerek, sabit kapsayıcıların ilkelerine uyurken güvenli ortamları koruyun.
Görev senaryoları
ACR görevleri kapsayıcı görüntülerini ve diğer yapıtları derlemek ve sürdürmek için çeşitli senaryoları destekler. Ayrıntılar için bu makaledeki aşağıdaki bölümlere bakın.
- Hızlı görev -tek bir kapsayıcı görüntüsünü oluşturun ve Azure 'da, yerel bir Docker altyapısı yüklemesine gerek kalmadan bir kapsayıcı kayıt defterine gönderin. Buluta göz önünde bulundurun
docker builddocker push. - Otomatik tetiklenen görevler -bir görüntü oluşturmak için bir veya daha fazla tetikleyici etkinleştirin:
- Çok adımlı görev -çok adımlı, çok Kapsayıcılı tabanlı iş akışlarıyla ACR görevlerinin tek görüntü derleme ve gönderme özelliğini genişletir.
Her bir ACR görevinin ilişkili bir kaynak kodu bağlamı vardır; bir kapsayıcı görüntüsü veya başka yapıt oluşturmak için kullanılan bir kaynak dosyaları kümesinin konumu. Örnek bağlamlar bir git deposu veya yerel bir dosya sistemi içerir.
Görevler çalışma değişkenlerindende yararlanabilir, böylece görev tanımlarını yeniden kullanabilir ve görüntüler ve yapıtlar için etiketleri standartlaşabilirsiniz.
Hızlı görev
Kaynak denetimine işlemeden önce uygulamanızı kod yazma, oluşturma ve test etme için yinelemeli bir işlem olan iç döngü geliştirme döngüsü, kapsayıcı yaşam döngüsü yönetiminin başlangıcıdır.
İlk kod satırlarınızı işlemeden önce, ACR görevlerinin hızlı görev özelliği, kapsayıcı görüntüsü derlemelerinizi Azure 'a devrederek bir tümleşik geliştirme deneyimi sağlayabilir. Hızlı görevlerle, kodunuzu işlemeden önce otomatik derleme tanımlarınızı doğrulayabilirsiniz ve olası sorunları yakalayabilin.
Tanıdık biçimi kullanarak docker build , Azure CLI 'deki az ACR Build komutu bir bağlam alır (oluşturulacak dosya kümesi), ACR görevlerine gönderilir ve varsayılan olarak, oluşturulan görüntüyü tamamlandığında kayıt defterine gönderir.
Giriş için bkz. Azure Container Registry bir kapsayıcı görüntüsü oluşturma ve çalıştırma hızlı başlangıcı.
ACR görevleri kapsayıcı yaşam döngüsü temel olarak tasarlanmıştır. Örneğin, ACR görevlerini CI/CD çözümünüz ile tümleştirin. Bir hizmet sorumlusuile az oturum açma ÇALıŞTıRARAK, CI/CD çözümünüz görüntü yapılarını açmak için az ACR Build komutları verebilir.
İlk ACR görevleri öğreticisinde hızlı görevleri nasıl kullanacağınızı öğrenin, bulutta kapsayıcı görüntülerini Azure Container Registry görevlerle oluşturun.
İpucu
Dockerfile olmadan doğrudan kaynak kodundan bir görüntü oluşturup göndermek istiyorsanız, Azure Container Registry az ACR Pack Build komutunu (Önizleme) sağlar. Bu araç, bulut Yerel Buildpackskullanarak uygulama kaynak kodundan bir görüntü oluşturur ve gönderir.
Kaynak kodu güncelleştirmesinde tetikleme görevi
kod yürütüldüğü sırada bir kapsayıcı görüntüsü oluşturma veya çok adımlı bir görevi tetikleyin veya GitHub ya da Azure DevOps bir genel ya da özel Git deposuna bir çekme isteği yapılır veya güncelleştirilir. Örneğin, bir git deposu ve isteğe bağlı olarak bir dal ve Dockerfile belirterek Azure CLI komutu ile bir derleme görevi yapılandırın. Takımınız depodaki kodu güncelleştirdiğinde, ACR görevler tarafından oluşturulan bir Web kancası depoda tanımlanan kapsayıcı görüntüsünün derlemesini tetikler.
ACR görevleri görevin bağlamı olarak bir git deposu ayarladığınızda aşağıdaki Tetikleyicileri destekler:
| Tetikleyici | Varsayılan olarak etkindir |
|---|---|
| İşleme | Yes |
| Çekme isteği | Hayır |
Not
şu anda acr görevleri, GitHub Enterprise depolarındaki işleme veya çekme isteği tetikleyicilerini desteklemez.
İkinci ACR görevleri öğreticisinde kaynak kodu işlemesinde derlemelerin nasıl tetikleneceğini öğrenin, Azure Container Registry görevlerle kapsayıcı görüntüsü derlemelerini otomatikleştirin.
Kişisel erişim belirteci
bir kaynak kodu güncelleştirme tetikleyicisi yapılandırmak için, genel veya özel GitHub veya depo Azure DevOps web kancasını ayarlamak üzere bir kişisel erişim belirteci (PAT) sağlamanız gerekir. PAT için gereken kapsamlar şunlardır:
| Depo türü | GitHub | DevOps |
|---|---|---|
| Genel depo | Depo: durum public_repo |
Kod (okuma) |
| Özel depo | Depo (tam denetim) | Kod (okuma) |
bir PAT oluşturmak için GitHub veya Azure DevOps belgelerine bakın.
İşletim sistemi ve çerçeve düzeltme ekini otomatikleştirme
ACR görevlerinin, kapsayıcı derleme iş akışınızı gerçek anlamda geliştirme gücü, bir temel görüntüde güncelleştirme algılama özelliğinden geliyor. Çoğu kapsayıcı görüntüsünün bir özelliği olan temel görüntü, bir veya daha fazla uygulama görüntüsünün temel aldığı bir üst görüntüdür. Temel görüntüler genellikle işletim sistemini ve bazen uygulama çerçevelerini içerir.
Bir uygulama görüntüsü oluştururken temel görüntüye bağımlılığı izlemek için bir ACR görevi ayarlayabilirsiniz. Güncelleştirilmiş temel görüntü kayıt defterinize gönderildiğinde veya Docker Hub 'daki gibi bir genel depoda bir temel görüntü güncelleştirilirse, ACR görevleri bu uygulamayı temel alan herhangi bir uygulama görüntüsünü otomatik olarak oluşturabilir. Bu otomatik algılama ve yeniden oluşturma ile, ACR görevleri, güncelleştirilmiş temel görüntenize başvuran her bir uygulama görüntüsünü el ile izlemek ve güncelleştirmek için normalde gereken zaman ve çabayı kaydeder.
ACR görevleri için temel görüntü güncelleştirme Tetikleyicileri hakkında daha fazla bilgi edinin. Ve bir Azure Container Registry 'de temel görüntü güncelleştirildiği zaman , bir temel görüntü öğretici içindeki kapsayıcı kayıt defterine gönderildiğinde bir görüntü derlemesini tetiklemeyi öğrenin
Görev zamanlama
Görevi oluştururken veya güncelleştirdiğinizde bir veya daha fazla Zamanlayıcı tetikleyicisi ayarlayarak isteğe bağlı olarak bir görev zamanlayın. Bir görevi zamanlama, tanımlı bir zamanlamaya göre kapsayıcı iş yüklerini çalıştırmak veya düzenli olarak kayıt defterinize gönderilen görüntülerde bakım işlemleri ya da testler çalıştırmak için yararlıdır. Ayrıntılar için bkz. tanımlı bir zamanlamaya göre ACR görevi çalıştırma.
Çok adımlı görevler
Çok adımlı görevler, bulutta kapsayıcı görüntüleri oluşturmak, test etmek ve düzeltme eki uygulamak 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 tek tek 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ğıdakileri otomatikleştiren bir çok adımlı görev oluşturabilirsiniz:
- Web uygulaması görüntüsü oluşturma
- Web uygulaması kapsayıcısını çalıştırma
- Web uygulaması test görüntüsü oluşturma
- Çalışan uygulama kapsayıcısına karşı testler gerçekleştiren Web uygulaması test kapsayıcısını çalıştırın
- Testler başarılı olursa bir Helu grafik arşiv paketi oluşturun
helm upgradeYeni helmchart arşiv paketini kullanarak bir gerçekleştir
Çok adımlı görevler, bir görüntünün oluşturma, çalıştırma ve test etme özelliğini, adım adım bağımlılık desteğiyle daha birleştirilebilir adımlara bölmeye olanak tanır. ACR görevlerinde çok adımlı görevlerle, görüntü oluşturma, test etme ve işletim sistemi ve çerçeve düzeltme eki uygulama iş akışları üzerinde daha ayrıntılı denetime sahip olursunuz.
ACR görevlerinde multi-step Build, test ve Patch görevlerini Çalıştırbölümünde çok adımlı görevler hakkında bilgi edinin.
Bağlam konumları
Aşağıdaki tabloda ACR görevleri için desteklenen bağlam konumlarının örnekleri gösterilmektedir:
| Bağlam konumu | Açıklama | Örnek |
|---|---|---|
| Yerel dosya sistemi | Yerel dosya sisteminde bir dizin içindeki dosyalar. | /home/user/projects/myapp |
| ana dalı GitHub | ortak veya özel GitHub deposunun ana (veya diğer varsayılan) daldaki dosyalar. | https://github.com/gituser/myapp-repo.git |
| GitHub dalı | ortak veya özel GitHub deposunun belirli bir dalı. | https://github.com/gituser/myapp-repo.git#mybranch |
| GitHub alt klasörü | ortak veya özel GitHub depodaki bir alt klasör içindeki dosyalar. Örnek, bir dal ve alt klasör belirtiminin birleşimini gösterir. | https://github.com/gituser/myapp-repo.git#mybranch:myfolder |
| GitHub tamamlama | ortak veya özel GitHub depoya belirli bir işleme. Örnek, bir COMMIT Hash (SHA) ve alt klasör belirtiminin birleşimini gösterir. | https://github.com/gituser/myapp-repo.git#git-commit-hash:myfolder |
| Azure DevOps alt klasörü | Ortak veya özel bir Azure deposunda bulunan 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 tarbol | Uzak Web sunucusu üzerindeki sıkıştırılmış arşivdeki dosyalar. | http://remoteserver/myapp.tar.gz |
| Kapsayıcı kayıt defterinde yapıt | Bir kapsayıcı kayıt defteri deposundaki OCI yapıt dosyaları. | oci://myregistry.azurecr.io/myartifact:mytag |
Not
Bir Git deposunu kaynak kodu güncelleştirmesi tarafından tetiklenen bir görev için bağlam olarak kullanırken, bir kişisel erişim belirteci (Pat)sağlamanız gerekir.
Görüntü platformları
Varsayılan olarak ACR görevleri, Linux işletim sistemi ve AMD64 mimarisi için görüntüler oluşturur. --platformdiğer mimarilere yönelik Windows görüntülerini veya Linux görüntülerini derlemek için etiket belirtin. İşletim sistemini ve isteğe bağlı olarak desteklenen bir mimariyi OS/Architecture biçiminde belirtin (örneğin, --platform Linux/arm ). ARM mimarileri için isteğe bağlı olarak OS/Architecture/VARIANT biçiminde bir değişken belirtin (örneğin, --platform Linux/arm64/v8 ):
| İşletim Sistemi | Mimari |
|---|---|
| Linux | amd64 arm arm64 386 |
| Windows | amd64 |
Görev çıktısını görüntüleme
Her görev çalıştırması, görev adımlarının başarıyla çalışıp çalışmadığını belirleyebilmek için inceleyebileceğiniz günlük çıktısı üretir. Bir görevi el ile tetiklemeniz durumunda, görev çalıştırmasının günlük çıktısı konsola akışla kaydedilir ve ayrıca daha sonra almak üzere saklanır. Bir görev otomatik olarak tetiklendiğinde (örneğin, kaynak kodu kaydı veya temel görüntü güncelleştirmesi), görev günlükleri yalnızca depolanır. Azure portal çalıştırma günlüklerini görüntüleyin veya az ACR görev günlükleri komutunu kullanın.
Görev günlüklerini görüntüleme ve yönetmehakkında daha fazla bilgi için bkz..
Sonraki adımlar
Bulutta kapsayıcı görüntüsü derlemelerini ve bakımını otomatik hale getirmeye hazır olduğunuzda ACR görevler öğretici serisiniinceleyin.
isteğe bağlı olarak Visual Studio Code için docker uzantısını ve azure container registry 'larınız ile birlikte çalışmak için azure hesap uzantısını yükler. Azure Container Registry 'ye görüntü çekme ve gönderme veya ACR görevlerini Visual Studio Code.