ACR Görevleri için temel görüntü güncelleştirmeleri hakkında
Bu makalede, bir uygulamanın temel görüntüsüne yönelik güncelleştirmeler ve bu güncelleştirmelerin bir Azure Container Registry görevini nasıl tetikleyebileceği hakkında arka plan bilgileri sağlanır.
Temel görüntüler nedir?
Kapsayıcı görüntülerinin çoğunu tanımlayan Dockerfile'lar, görüntünün temel aldığı ve genellikle temel görüntüsü olarak adlandırılan bir üst görüntü belirtir. Temel görüntüler genellikle kapsayıcı katmanlarının geri kalanının uygulandığı Alpine Linux veya Windows Nano Server gibi işletim sistemini içerir. Bunlar ayrıca Node.js veya .NET Core gibi uygulama çerçeveleri de içerir. Bu temel görüntüler genellikle genel yukarı akış görüntülerini temel alır. Uygulama görüntülerinizin birkaçı ortak bir temel görüntü paylaşabilir.
Temel görüntü çoğunlukla, görüntüdeki işletim sistemi veya çerçevenin yeni özelliklerini veya geliştirmelerini içermesi için görüntü bakımcısı tarafından güncelleştirilir. Temel görüntüyü güncelleştirmenin bir diğer yaygın nedeni de güvenlik yamalarıdır. Bu yukarı akış güncelleştirmeleri gerçekleştiğinde, temel görüntülerinizi de kritik düzeltmeyi içerecek şekilde güncelleştirmeniz gerekir. Bu yukarı akış düzeltmelerini temel görüntünüze eklemek için her uygulama görüntüsünün de yeniden oluşturulması gerekir.
Özel geliştirme ekibi gibi bazı durumlarda, temel görüntü işletim sisteminden veya çerçeveden daha fazlasını belirtebilir. Örneğin temel görüntü, izlenmesi gereken paylaşılan bir hizmet bileşeni görüntüsü olabilir. Bir ekibin üyelerinin test için bu temel görüntüyü izlemesi veya uygulama görüntüleri geliştirirken görüntüyü düzenli olarak güncelleştirmeleri gerekebilir.
Temel görüntülerin kopyalarını koruma
Kayıt defterlerinizde Docker Hub gibi bir genel kayıt defterinde tutulan temel içeriğe bağlı tüm içerikler için, içeriği bir Azure kapsayıcı kayıt defterine veya başka bir özel kayıt defterine kopyalamanızı öneririz. Ardından, özel temel görüntülere başvurarak uygulama görüntülerinizi oluşturduğunuzdan emin olun. Azure Container Registry, genel kayıt defterlerinden veya diğer Azure kapsayıcı kayıt defterlerinden kolayca içerik kopyalamaya yönelik bir görüntü içeri aktarma özelliği sağlar. Sonraki bölümde, uygulama güncelleştirmelerini oluştururken temel görüntü güncelleştirmelerini izlemek için ACR Görevlerinin kullanılması açıklanmaktadır. Temel görüntü güncelleştirmelerini kendi Azure kapsayıcı kayıt defterlerinizde ve isteğe bağlı olarak yukarı akış genel kayıt defterlerinde izleyebilirsiniz.
Temel görüntü güncelleştirmelerini izleme
ACR Görevleri, kapsayıcının temel görüntüsü güncelleştirildiğinde sizin için görüntüleri otomatik olarak oluşturma özelliğine sahiptir. Bu özelliği, Azure kapsayıcı kayıt defterlerinizdeki genel temel görüntülerin kopyalarını korumak ve güncelleştirmek ve ardından temel görüntülere bağlı uygulama görüntülerini yeniden derlemek için kullanabilirsiniz.
ACR Görevleri, kapsayıcı görüntüsü oluştururken temel görüntü bağımlılıklarını dinamik olarak bulur. Sonuç olarak, bir uygulama görüntüsünün temel görüntüsünün ne zaman güncelleştirildiği algılanabilir. Önceden yapılandırılmış bir derleme göreviyle, ACR Görevleri temel görüntüye başvuran her uygulama görüntüsünü otomatik olarak yeniden oluşturabilir. Bu otomatik algılama ve yeniden derleme ile ACR Görevleri, güncelleştirilmiş temel görüntünüze başvuran her bir uygulama görüntüsünü el ile izlemek ve güncelleştirmek için normalde gereken zamandan ve çabadan tasarruf etmenizi sağlar.
Temel görüntü konumları
Bir Dockerfile'dan görüntü derlemeleri için, ACR görevi aşağıdaki konumlardaki temel görüntülere bağımlılıkları algılar:
- Görevin çalıştığı azure kapsayıcı kayıt defteri
- Aynı veya farklı bir bölgede başka bir özel Azure kapsayıcı kayıt defteri
- Docker Hub'da genel depo
- Microsoft Container Registry'de genel depo
deyiminde FROM
belirtilen temel görüntü bu konumlardan birinde yer alırsa, ACR görevi, temeli her güncelleştirildiğinde görüntünün yeniden oluşturulmasını sağlamak için bir kanca ekler.
Temel görüntü bildirimleri
Temel görüntünün güncelleştirilme zamanı ile bağımlı görevin tetiklenmesi arasındaki süre, temel görüntü konumuna bağlıdır:
- Docker Hub veya MCR'deki genel bir depodan alınan temel görüntüler - Genel depolardaki temel görüntüler için, ACR görevi 10 ile 60 dakika arasında rastgele bir aralıkta görüntü güncelleştirmelerini denetler. Bağımlı görevler buna göre çalıştırılır.
- Azure kapsayıcı kayıt defterinden temel görüntüler - Azure kapsayıcı kayıt defterlerindeki temel görüntüler için, ACR görevi temel görüntüsü güncelleştirildiğinde hemen bir çalıştırma tetikler. Temel görüntü, görevin çalıştığı ACR'de veya herhangi bir bölgedeki farklı bir ACR'de olabilir.
Dikkat edilecek diğer noktalar
Uygulama görüntüleri için temel görüntüler - Şu anda bir ACR görevi yalnızca uygulama (çalışma zamanı) görüntüleri için temel görüntü güncelleştirmelerini izler. Çok aşamalı Dockerfile'larda kullanılan ara (derleme zamanı) görüntüleri için temel görüntü güncelleştirmelerini izlemez.
Varsayılan olarak etkin - az acr task create komutuyla bir ACR görevi oluşturduğunuzda , varsayılan olarak görev bir temel görüntü güncelleştirmesi tarafından tetikleyici için etkinleştirilir . Yani,
base-image-trigger-enabled
özelliği True olarak ayarlanır. Bir görevde bu davranışı devre dışı bırakmak istiyorsanız özelliğini False olarak güncelleştirin. Örneğin, aşağıdaki az acr task update komutunu çalıştırın:az acr task update --registry myregistry --name mytask --base-image-trigger-enabled False
Bağımlılıkları izlemek için tetikleme - Kapsayıcı görüntüsünün bağımlılıklarını belirlemek ve izlemek için (temel görüntüsünü içeren) bir ACR görevini etkinleştirmek için, önce görevi tetikleyip en az bir kez görüntüyü derlemeniz gerekir. Örneğin, az acr task run komutunu kullanarak görevi el ile tetikleyin.
Temel görüntü için kararlı etiket - Temel görüntü güncelleştirmesinde bir görevi tetikleyebilmek için, temel görüntünün gibi
node:9-alpine
kararlı bir etiketi olmalıdır. Bu etiketleme, işletim sistemi ve çerçeve yamaları ile en son kararlı sürüme güncelleştirilen temel bir görüntü için tipiktir. Temel görüntü yeni bir sürüm etiketiyle güncelleştirilirse, bir görevi tetiklemez. Görüntü etiketleme hakkında daha fazla bilgi için en iyi yöntemler kılavuzuna bakın.Diğer görev tetikleyicileri - Temel görüntü güncelleştirmeleri tarafından tetiklenen bir görevde, kaynak kodu işlemeye veya zamanlamaya göre tetikleyicileri de etkinleştirebilirsiniz. Temel görüntü güncelleştirmesi çok adımlı bir görevi de tetikleyebilir.
Sonraki adımlar
Temel görüntü güncelleştirildikten sonra uygulama görüntüsü derlemelerini otomatikleştirme senaryoları için aşağıdaki öğreticilere bakın: