Mengotomatiskan pembuatan dan pemeliharaan citra kontainer dengan Tugas ACR

Kontainer menyediakan tingkat virtualisasi baru, mengisolasi dependensi aplikasi dan pengembang dari infrastruktur dan persyaratan operasional. Namun, yang tersisa adalah kebutuhan untuk mengatasi bagaimana virtualisasi aplikasi ini dikelola dan ditambal atas siklus hidup kontainer.

Apa itu Tugas ACR?

Tugas ACR adalah serangkaian fitur dalam Azure Container Registry. Ini menyediakan pembuatan citra kontainer berbasis cloud untuk platform termasuk Linux, Windows, dan ARM, dan dapat mengotomatiskan OS dan penambalan kerangka kerja untuk kontainer Docker Anda. Tugas ACR tidak hanya memperluas siklus pengembangan "inner-loop" Anda ke cloud dengan build citra kontainer sesuai permintaan, tetapi juga memungkinkan build otomatis yang dipicu oleh pembaruan kode sumber, pembaruan pada citra dasar kontainer, atau timer. Misalnya, dengan pemicu pembaruan citra dasar, Anda dapat mengotomatiskan alur kerja penambalan kerangka kerja OS dan aplikasi Anda, memelihara lingkungan yang aman sambil mematuhi prinsip-prinsip kontainer yang tidak dapat diubah.

[! PENTING] ACR menjeda sementara Tugas ACR yang dijalankan dari kredit gratis Azure. Ini dapat memengaruhi eksekusi Tugas yang ada. Jika Anda mengalami masalah, buka kasus dukungan bagi tim kami untuk memberikan panduan tambahan. Harap dicatat bahwa pelanggan yang ada tidak akan terpengaruh oleh jeda ini. Kami akan memperbarui pemberitahuan dokumentasi kami di sini setiap kali jeda diangkat.

[! PERINGATAN] Harap diingat bahwa informasi apa pun yang diberikan pada baris perintah atau sebagai bagian dari URI dapat dicatat sebagai bagian dari pelacakan diagnostik Azure Container Registry (ACR). Ini termasuk data sensitif seperti kredensial, token akses pribadi GitHub, dan informasi aman lainnya. Berhati-hatilah untuk mencegah potensi risiko keamanan, sangat penting untuk menghindari termasuk detail sensitif dalam baris perintah atau URI yang tunduk pada pengelogan diagnostik.

Skenario tugas

Tugas ACR mendukung beberapa skenario untuk membangun dan memelihara citra kontainer dan artefak lainnya. Lihat bagian berikut ini di artikel ini untuk detailnya.

Setiap Tugas ACR memiliki konteks kode sumber terkait - lokasi sekumpulan file sumber yang digunakan untuk membuat citra kontainer atau artefak lainnya. Konteks contoh termasuk repositori Git atau sistem file lokal.

Tugas juga dapat memanfaatkan variabel eksekusi, sehingga Anda dapat menggunakan kembali definisi tugas dan menstandarkan tag untuk citra dan artefak.

Tugas cepat

Siklus pengembangan inner-loop, proses berulang dari menulis kode, membuat, dan menguji aplikasi Anda sebelum berkomitmen pada kontrol sumber, benar-benar awal dari manajemen siklus hidup kontainer.

Sebelum Anda menerapkan kode baris pertama Anda, fitur tugas cepat Tugas ACR dapat memberikan pengalaman pengembangan yang terintegrasi dengan menurunkan build citra kontainer Anda ke Azure. Dengan tugas cepat, Anda dapat memverifikasi definisi build otomatis dan menangkap potensi masalah sebelum melakukan kode.

Menggunakan format docker build yang akrab, perintah build az acr di Azure CLI mengambil konteks (kumpulan file untuk dibuat), mengirimkannya ke Tugas ACR dan, secara default, mendorong citra yang dibuat ke registrinya setelah selesai.

Untuk pengenalan, lihat mulai cepat untuk membuat dan menjalankan citra kontainer di Azure Container Registry.

Tugas ACR dirancang sebagai primitif siklus hidup kontainer. Misalnya, integrasikan Tugas ACR ke dalam solusi CI/CD Anda. Dengan mengeksekusi masuk az dengan perwakilan layanan, solusi CI/CD Anda kemudian dapat mengeluarkan perintah build az acr untuk memulai build citra.

Pelajari cara menggunakan tugas cepat dalam tutorial Tugas ACR pertama, Membuat citra kontainer di cloud dengan Tugas Azure Container Registry.

Tip

Jika Anda ingin membuat dan mendorong citra langsung dari kode sumber, tanpa Dockerfile, Azure Container Registry memberikan perintah build paket az acr (pratinjau). Alat ini membuat dan mendorong citra dari kode sumber aplikasi menggunakan Cloud Native Buildpacks.

Memicu tugas pada pembaruan kode sumber

Picu build citra kontainer atau tugas multi-langkah saat kode dibuat, atau permintaan tarik dibuat atau diperbarui, ke repositori Git publik atau privat di GitHub atau Azure DevOps. Misalnya, konfigurasikan tugas build dengan perintah Azure CLI buat tugas az acr dengan menentukan repositori Git dan opsional cabang dan Dockerfile. Saat tim Anda memperbarui kode di repositori, webhook yang dibuat Tugas ACR memicu build citra kontainer yang ditentukan dalam repo.

Tugas ACR mendukung pemicu berikut saat Anda menetapkan repo Git sebagai konteks tugas:

Pemicu Diaktifkan secara default
Menjalankan Ya
Permintaan penarikan No

Catatan

Saat ini, ACR Tasks tidak mendukung pemicu penerapan atau permintaan pull di repos GitHub Enterprise.

Pelajari cara memicu build pada penerapan kode sumber dalam tutorial Tugas ACR kedua, Mengotomatiskan build citra kontainer dengan Tugas Azure Container Registry.

Token akses pribadi

Untuk mengonfigurasi pemicu pembaruan kode sumber, Anda perlu memberikan tugas token akses pribadi (PAT) untuk mengatur webhook di repo GitHub atau Azure DevOps publik atau privat. Cakupan yang diperlukan untuk PAT adalah sebagai berikut:

Jenis repositori GitHub DevOps
Repositori Publik repositori:status
public_repo
Kode (Baca)
Repositori privat repositori (Kontrol penuh) Kode (Baca)

Untuk membuat PAT, lihat dokumentasi GitHub atau Azure DevOps.

Mengotomatiskan penambalan OS dan kerangka kerja

Kekuatan Tugas ACR untuk benar-benar meningkatkan alur kerja build kontainer Anda berasal dari kemampuannya untuk mendeteksi pembaruan pada citra dasar. Fitur sebagian besar citra kontainer, citra dasar adalah citra induk di mana satu atau lebih citra aplikasi didasarkan. Citra dasar biasanya berisi sistem operasi, dan terkadang kerangka kerja aplikasi.

Anda dapat mengatur tugas ACR untuk melacak dependensi pada citra dasar saat membuat citra aplikasi. Ketika citra dasar yang diperbarui didorong ke registri Anda, atau citra dasar diperbarui pada repo publik seperti di Docker Hub, Tugas ACR dapat secara otomatis membuat citra aplikasi berdasarkan itu. 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.

Pelajari selengkapnya tentang pemicu pembaruan citra dasar untuk Tugas ACR. Dan pelajari cara memicu build gambar saat gambar dasar didorong ke registri kontainer dalam tutorial Mengotomatiskan build gambar kontainer saat gambar dasar diperbarui dalam registri kontainer Azure

Menjadwalkan tugas

Secara opsional menjadwalkan tugas dengan menyiapkan satu atau beberapa pemicu timer saat Anda membuat atau memperbarui tugas. Menjadwalkan tugas berguna untuk menjalankan beban kerja kontainer pada jadwal yang ditentukan, atau menjalankan pengujian atau operasi pemeliharaan pada citra yang didorong secara teratur ke registri Anda. Untuk detailnya, lihat Menjalankan tugas ACR pada jadwal yang ditentukan.

Tugas multi-langkah

Tugas multi-langkah menyediakan definisi dan eksekusi tugas berbasis langkah untuk membangun, menguji, dan menambal citra kontainer di cloud. Langkah tugas yang ditentukan dalam file YAML menentukan masing-masing operasi buat dan dorong untuk citra kontainer atau artefak lainnya. Mereka juga dapat mendefinisikan eksekusi satu atau lebih kontainer, dengan setiap langkah menggunakan kontainer sebagai lingkungan eksekusinya.

Misalnya, Anda bisa membuat tugas multi-langkah yang mengotomatiskan berikut ini:

  1. Membuat citra aplikasi web
  2. Menjalankan kontainer aplikasi web
  3. Membuat citra uji aplikasi web
  4. Jalankan kontainer uji aplikasi web yang melakukan pengujian terhadap kontainer aplikasi yang sedang berjalan
  5. Jika pengujian lulus, buat paket arsip bagan Helm
  6. Lakukan helm upgrade menggunakan paket arsip bagan Helm baru

Tugas multi-langkah memungkinkan Anda memisahkan pembuatan, eksekusi, dan pengujian citra menjadi langkah yang lebih mudah diubah, dengan dukungan dependensi antarlangkah. Dengan tugas multi-langkah dalam Tugas ACR, Anda memiliki kontrol yang lebih terperinci atas alur kerja pembuatan citra, pengujian, serta penambalan OS dan kerangka kerja.

Pelajari tentang tugas multi-langkah dalam Menjalankan tugas build, pengujian, dan patch multi-langkah di Tugas ACR.

Lokasi konteks

Tabel berikut ini menunjukkan contoh lokasi konteks yang didukung untuk Tugas ACR:

Lokasi konteks Deskripsi Contoh
Sistem file lokal File di dalam direktori pada sistem file lokal. /home/user/projects/myapp
Cabang utama GitHub File dalam cabang utama (atau default lainnya) dari repositori GitHub publik atau privat. https://github.com/gituser/myapp-repo.git
Cabang GitHub Cabang tertentu dari repo GitHub publik atau privat. https://github.com/gituser/myapp-repo.git#mybranch
Subfolder GitHub File dalam subfolder di repo GitHub publik atau privat. Contoh menunjukkan kombinasi spesifikasi cabang dan subfolder. https://github.com/gituser/myapp-repo.git#mybranch:myfolder
Penerapan GitHub Penerapan spesifik dalam repo GitHub publik atau privat. Contoh menunjukkan kombinasi spesifikasi hash penerapan (SHA) dan subfolder. https://github.com/gituser/myapp-repo.git#git-commit-hash:myfolder
Subfolder Azure DevOps File dalam subfolder di repo Azure publik atau privat. Contoh menunjukkan kombinasi spesifikasi cabang dan subfolder. https://dev.azure.com/user/myproject/_git/myapp-repo#mybranch:myfolder
Tarball jarak jauh File dalam arsip terkompresi pada server web jarak jauh. http://remoteserver/myapp.tar.gz
Artefak dalam registri kontainer File artefak OCI dalam repositori registri kontainer. oci://myregistry.azurecr.io/myartifact:mytag

Catatan

Saat menggunakan repositori Git sebagai konteks untuk tugas yang dipicu oleh pembaruan kode sumber, Anda harus menyediakan token akses pribadi (PAT).

Platform citra

Secara default, Tugas ACR membuat citra untuk OS Linux dan arsitektur amd64. Tentukan tag --platform untuk membuat citra Windows atau citra Linux untuk arsitektur lain. Tentukan OS dan secara opsional arsitektur yang didukung dalam format OS/arsitektur (misalnya, --platform Linux/arm). Untuk arsitektur ARM, secara opsional tentukan varian dalam format OS/arsitektur/varian (misalnya, --platform Linux/arm64/v8 ):

OS Sistem
Linux amd64
arm
arm64
386
Windows amd64

Melihat output tugas

Setiap eksekusi tugas menghasilkan output log yang dapat Anda periksa untuk menentukan apakah langkah tugas berhasil dijalankan. Saat Anda memicu tugas secara manual, output log untuk eksekusi tugas dialirkan ke konsol dan juga disimpan untuk pengambilan nanti. Saat tugas dipicu secara otomatis, misalnya oleh penerapan kode sumber atau pembaruan citra dasar, log tugas hanya disimpan. Lihat log eksekusi di portal Microsoft Azure, atau gunakan perintah log tugas az acr.

Lihat selengkapnya tentang menampilkan dan mengelola log tugas.

Langkah berikutnya

Saat Anda siap untuk mengotomatiskan build citra kontainer dan pemeliharaan di cloud, lihat seri tutorial Tugas ACR.

Secara opsional instal Ekstensi Docker untuk Visual Studio Code dan ekstensi Akun Azure untuk bekerja dengan registri kontainer Azure Anda. Tarik dan dorong citra ke registri kontainer Azure, atau jalankan Tugas Azure Container Registry, semuanya dalam Visual Studio Code.