Bagikan melalui


Mengotomatiskan build dan pemeliharaan gambar kontainer dengan tugas Azure Container Registry

Kontainer menyediakan tingkat virtualisasi baru dengan mengisolasi dependensi aplikasi dan pengembang dari persyaratan infrastruktur dan operasional. Yang tersisa adalah kebutuhan untuk mengatasi bagaimana virtualisasi aplikasi ini dikelola dan di-patch selama siklus hidup kontainer.

Tugas Azure Container Registry adalah serangkaian fitur yang:

  • Menyediakan pembuatan gambar kontainer berbasis cloud untuk platform seperti Linux, Windows, dan ARM.
  • Perluas bagian awal siklus pengembangan aplikasi ke cloud dengan build gambar kontainer sesuai permintaan.
  • Aktifkan build otomatis yang dipicu oleh pembaruan kode sumber, pembaruan pada gambar dasar kontainer, atau timer.

Misalnya, dengan pemicu pembaruan pada gambar dasar, Anda dapat mengotomatiskan PATCH OS dan kerangka kerja untuk kontainer Docker Anda. Pemicu ini dapat membantu Anda mempertahankan lingkungan yang aman sambil mematuhi prinsip-prinsip kontainer yang tidak dapat diubah.

Penting

Tugas Azure Container Registry yang dijalankan untuk sementara dijeda dari kredit gratis Azure. Jeda ini mungkin memengaruhi eksekusi tugas yang ada. Jika Anda mengalami masalah, buka kasus dukungan bagi tim kami untuk memberikan panduan tambahan.

Peringatan

Informasi apa pun yang Anda berikan di baris perintah atau sebagai bagian dari URI mungkin dicatat sebagai bagian dari pelacakan diagnostik Azure Container Registry. Informasi ini mencakup data sensitif seperti kredensial dan token akses pribadi GitHub. Berhati-hatilah untuk mencegah potensi risiko keamanan. Jangan sertakan detail sensitif pada baris perintah atau URI yang tunduk pada pengelogan diagnostik.

Skenario tugas

Tugas Azure Container Registry mendukung beberapa skenario untuk membangun dan memelihara gambar kontainer dan artefak lainnya. Artikel ini menjelaskan tugas cepat, tugas yang dipicu secara otomatis, dan tugas multi-langkah.

Setiap tugas memiliki konteks kode sumber terkait, yang merupakan lokasi file sumber yang digunakan untuk membangun gambar kontainer atau artefak lainnya. Contoh konteks termasuk repositori Git dan 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 perulangan dalam adalah proses berulang menulis kode, membangun, dan menguji aplikasi Anda sebelum berkomitmen pada kontrol sumber. Ini benar-benar awal manajemen siklus hidup kontainer.

Fitur tugas cepat dalam tugas Azure Container Registry dapat memberikan pengalaman pengembangan terintegrasi dengan membongkar build gambar kontainer Anda ke Azure. Anda dapat membangun dan mendorong satu gambar kontainer ke registri kontainer sesuai permintaan, di Azure, tanpa memerlukan penginstalan Docker Engine lokal. Pikirkan docker build, docker push di awan. Dengan tugas cepat, Anda dapat memverifikasi definisi build otomatis dan menangkap potensi masalah sebelum menerapkan kode Anda.

Dengan menggunakan format yang sudah dikenal docker build , perintah az acr build di Azure CLI mengambil konteks. Perintah kemudian mengirim konteks ke Azure Container Registry dan (secara default) mendorong gambar bawaan ke registrinya setelah selesai.

Tugas Azure Container Registry dirancang sebagai primitif siklus hidup kontainer. Misalnya, Anda dapat mengintegrasikan tugas Azure Container Registry ke dalam solusi integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD). Jika Anda menjalankan az login dengan perwakilan layanan, solusi CI/CD Anda kemudian dapat mengeluarkan perintah build az acr untuk memulai build gambar.

Untuk mempelajari cara menggunakan tugas cepat, lihat mulai cepat dan tutorial untuk membangun dan menyebarkan gambar kontainer dengan menggunakan 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 membangun dan mendorong gambar dari kode sumber aplikasi dengan menggunakan Cloud Native Buildpacks.

Tugas yang dipicu secara otomatis

Aktifkan satu atau beberapa pemicu untuk membangun gambar.

Memicu tugas pada pembaruan kode sumber

Anda dapat memicu build gambar kontainer atau tugas multi-langkah saat kode diterapkan, atau permintaan pull 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 di tugas Azure Container Registry memicu build gambar kontainer yang ditentukan dalam repositori.

Tugas Azure Container Registry mendukung pemicu berikut saat Anda mengatur repositori Git sebagai konteks tugas:

Pemicu Diaktifkan secara default
Menjalankan Ya
Permintaan penarikan No

Catatan

Saat ini, tugas Azure Container Registry tidak mendukung penerapan atau pemicu permintaan tarik di repositori GitHub Enterprise.

Untuk mempelajari cara memicu build pada penerapan kode sumber, lihat Mengotomatiskan build gambar kontainer dengan tugas Azure Container Registry.

Token akses pribadi

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

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

Untuk membuat token akses pribadi, lihat dokumentasi GitHub atau Azure DevOps .

Mengotomatiskan penambalan OS dan kerangka kerja

Kekuatan tugas Azure Container Registry untuk meningkatkan alur kerja build kontainer Anda berasal dari kemampuan mereka untuk mendeteksi pembaruan ke gambar dasar. Gambar dasar adalah fitur dari sebagian besar gambar kontainer. Ini adalah gambar induk yang didasarkan pada satu atau beberapa gambar aplikasi. Gambar dasar biasanya berisi sistem operasi dan terkadang kerangka kerja aplikasi.

Anda dapat menyiapkan tugas Azure Container Registry untuk melacak dependensi pada gambar dasar saat membangun gambar aplikasi. Ketika gambar dasar yang diperbarui didorong ke registri Anda, atau gambar dasar diperbarui dalam repositori publik seperti di Docker Hub, tugas Azure Container Registry dapat secara otomatis membangun gambar aplikasi apa pun berdasarkan itu. Dengan deteksi dan pembangunan ulang otomatis ini, tugas Azure Container Registry menghemat waktu dan upaya yang biasanya diperlukan untuk melacak dan memperbarui setiap gambar aplikasi secara manual yang mereferensikan gambar dasar yang diperbarui.

Untuk informasi selengkapnya, lihat Tentang pembaruan gambar dasar untuk tugas azure Container Registry dan Tutorial: Mengotomatiskan build gambar kontainer saat gambar dasar diperbarui dalam registri kontainer Azure.

Menjadwalkan tugas

Anda dapat menjadwalkan tugas dengan menyiapkan satu atau beberapa pemicu timer saat 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 informasi selengkapnya, lihat Menjalankan tugas Azure Container Registry pada jadwal yang ditentukan.

Tugas multi-langkah

Perluas kemampuan build-and-push gambar tunggal tugas Azure Container Registry dengan alur kerja multi-langkah yang didasarkan pada beberapa kontainer.

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 dapat membuat tugas multi-langkah yang mengotomatiskan langkah-langkah berikut:

  1. Buat gambar aplikasi web.
  2. Jalankan kontainer aplikasi web.
  3. Buat gambar 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. helm upgrade Lakukan tugas dengan menggunakan paket arsip bagan Helm baru.

Tugas multi-langkah memungkinkan Anda membagi bangunan, menjalankan, dan menguji gambar menjadi langkah-langkah yang lebih mudah disusun, dengan dukungan dependensi di antara langkah-langkah. Dengan tugas multi-langkah dalam tugas Azure Container Registry, Anda memiliki kontrol yang lebih terperinci atas alur kerja untuk pembuatan gambar, pengujian, dan patching OS dan kerangka kerja.

Pelajari selengkapnya tentang menjalankan tugas build, pengujian, dan patch multi-langkah di tugas Azure Container Registry.

Lokasi konteks

Tabel berikut ini memperlihatkan contoh lokasi konteks yang didukung untuk tugas Azure Container Registry:

Lokasi konteks Deskripsi Contoh
Sistem file lokal File 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 hash penerapan (SHA) dan spesifikasi 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 Anda menggunakan repositori Git sebagai konteks untuk tugas yang dipicu oleh pembaruan kode sumber, Anda perlu menyediakan token akses pribadi.

Platform citra

Secara default, tugas Azure Container Registry membangun gambar 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

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 disimpan untuk pengambilan nanti. Saat tugas dipicu secara otomatis (misalnya, oleh penerapan kode sumber atau pembaruan gambar dasar), log tugas hanya disimpan. Lihat log eksekusi di portal Microsoft Azure, atau gunakan perintah log tugas az acr.

Pelajari selengkapnya tentang menampilkan dan mengelola log tugas.

  • Saat Anda siap untuk mengotomatiskan build dan pemeliharaan gambar kontainer di cloud, lihat Tutorial: Membuat dan menyebarkan gambar kontainer di cloud dengan tugas Azure Container Registry.

  • Secara opsional, pelajari tentang ekstensi Docker dan ekstensi Akun Azure untuk Visual Studio Code. Anda dapat menggunakan ekstensi ini untuk menarik gambar dari registri kontainer, mendorong gambar ke registri kontainer, atau menjalankan tugas Azure Container Registry, semuanya dalam Visual Studio Code.