Tentang pembaruan citra dasar untuk Tugas ACR

Artikel ini menyediakan informasi latar belakang tentang pembaruan pada citra dasar aplikasi dan bagaimana pembaruan ini dapat memicu tugas Azure Container Registry.

Apa itu citra dasar?

Dockerfile yang mendefinisikan sebagian besar citra kontainer menentukan citra induk dari mana citra didasarkan, sering disebut sebagai citra dasarnya. Citra dasar biasanya berisi sistem operasi, misalnya Alpine Linux atau Windows Nano Server, di mana lapisan kontainer lainnya diterapkan. Mereka mungkin juga menyertakan kerangka kerja aplikasi seperti Node.js atau .NET Core. Citra dasar ini sendiri biasanya didasarkan pada citra upstream publik. Beberapa citra aplikasi Anda mungkin membagikan citra dasar umum.

Citra dasar sering diperbarui oleh pengelola citra untuk menyertakan fitur baru atau peningkatan pada OS atau kerangka kerja dalam citra. Penambal keamanan adalah penyebab umum lainnya untuk pembaruan citra dasar. Ketika pembaruan upstream ini terjadi, Anda juga harus memperbarui citra dasar Anda untuk menyertakan perbaikan kritis. Setiap citra aplikasi kemudian juga harus disusun kembali untuk menyertakan perbaikan upstream ini sekarang termasuk dalam citra dasar Anda.

Dalam beberapa kasus, seperti tim pengembangan privat, citra dasar mungkin menentukan lebih dari OS atau kerangka kerja. Misalnya, citra dasar bisa menjadi citra komponen layanan bersama yang perlu dilacak. Anggota tim mungkin perlu melacak citra dasar ini untuk pengujian, atau perlu memperbarui citra secara berkala saat mengembangkan citra aplikasi.

Mempertahankan salinan citra dasar

Untuk konten apa pun di registri Anda yang tergantung pada konten dasar yang dikelola di registri publik seperti Docker Hub, kami sarankan Anda menyalin konten tersebut ke registri kontainer Azure atau registri privat lainnya. Kemudian, pastikan Anda membuat citra aplikasi dengan merujuk ke citra dasar privat. Azure Container Registry memberikan kemampuan impor citra untuk menyalin konten dengan mudah dari registri publik atau registri kontainer Azure lainnya. Bagian berikutnya menjelaskan penggunaan Tugas ACR untuk melacak pembaruan citra dasar saat membuat pembaruan aplikasi. Anda dapat melacak pembaruan citra dasar di registri kontainer Azure Anda sendiri dan secara opsional di registri publik upstream.

Melacak pembaruan citra dasar

Tugas ACR mencakup kemampuan untuk secara otomatis membuat citra untuk Anda saat citra dasar kontainer diperbarui. Anda dapat menggunakan kemampuan ini untuk menjaga dan memperbarui salinan citra dasar publik di registri kontainer Azure Anda, lalu untuk membuat kembali citra aplikasi yang bergantung pada citra dasar.

Tugas ACR secara dinamis menemukan dependensi citra dasar saat membuat citra kontainer. Akibatnya, Tugas ACR dapat mendeteksi kapan citra dasar citra aplikasi diperbarui. Dengan satu tugas build yang telah dikonfigurasi sebelumnya, Tugas ACR dapat secara otomatis membangun ulang setiap gambar aplikasi yang mereferensikan gambar dasar. Dengan deteksi dan pembuatan ulang otomatis ini, Tugas ACR menghemat waktu dan usaha yang biasanya diperlukan untuk melacak dan memperbarui setiap citra aplikasi secara manual merujuk citra dasar Anda yang diperbarui.

Lokasi citra dasar

Untuk build citra dari Dockerfile, tugas ACR mendeteksi dependensi pada citra dasar di lokasi berikut:

  • Registri kontainer Azure yang sama tempat tugas berjalan
  • Registri kontainer Azure privat lainnya di wilayah yang sama atau berbeda
  • Repo publik di Docker Hub
  • Repo publik di Microsoft Container Registry

Jika citra dasar yang ditentukan dalam pernyataan FROM berada di salah satu lokasi ini, tugas ACR menambahkan kait untuk memastikan citra dibuat kembali kapan saja dasarnya diperbarui.

Pemberitahuan citra dasar

Waktu antara ketika citra dasar diperbarui dan ketika tugas dependen dipicu tergantung pada lokasi citra dasar:

  • Citra dasar dari repo publik di Docker Hub atau MCR - Untuk citra dasar di repositori publik, tugas ACR memeriksa pembaruan citra pada interval acak antara 10 dan 60 menit. Tugas dependen dijalankan sesuai.
  • Citra dasar dari registri kontainer Azure - Untuk citra dasar di registri kontainer Azure, tugas ACR segera memicu eksekusi ketika citra dasarnya diperbarui. Citra dasar mungkin berada di ACR yang sama di mana eksekusi tugas atau di ACR yang berbeda di wilayah mana pun.

Pertimbangan tambahan

  • Citra dasar untuk citra aplikasi - Saat ini, tugas ACR hanya melacak pembaruan citra dasar untuk citra aplikasi(runtime). Ini tidak melacak pembaruan citra dasar untuk citra menengah (buildtime) yang digunakan dalam Dockerfile multi-tahap.

  • Diaktifkan secara default - Saat Anda membuat tugas ACR dengan perintah buat tugas az acr, secara default tugas diaktifkan untuk pemicu oleh pembaruan citra dasar. Artinya, properti base-image-trigger-enabled diatur ke Benar. Jika Anda ingin menonaktifkan perilaku ini dalam tugas, perbarui properti ke Salah. Misalnya, jalankan perintah perbarui tugas az acr berikut:

    az acr task update --registry myregistry --name mytask --base-image-trigger-enabled False
    
  • Pemicu untuk melacak dependensi - Untuk mengaktifkan tugas ACR untuk menentukan dan melacak dependensi citra kontainer - yang mencakup citra dasarnya - Anda harus terlebih dahulu memicu tugas untuk membuat citra setidaknya sekali. Misalnya, picu tugas secara manual menggunakan perintah jalankan tugas az acr.

  • Tag stabil untuk citra dasar - Untuk memicu tugas pada pembaruan citra dasar, citra dasar harus memiliki tag stabil, seperti node:9-alpine. Pemberian tag ini biasanya untuk citra dasar yang diperbarui dengan OS dan patch kerangka kerja ke rilis stabil terbaru. Jika citra dasar diperbarui dengan tag versi baru, citra tersebut tidak memicu tugas. Untuk informasi selengkapnya tentang pemberian tag citra, lihat panduan praktik terbaik.

  • Pemicu tugas lainnya - Dalam tugas yang dipicu oleh pembaruan citra dasar, Anda juga dapat mengaktifkan pemicu berdasarkan penerapan kode sumber atau jadwal. Pembaruan citra dasar juga dapat memicu tugas multi-langkah.

Langkah berikutnya

Lihat tutorial berikut untuk skenario mengotomatiskan build citra aplikasi setelah citra dasar diperbarui: