Container Registry Enterprise Edition menyediakan pipeline CI/CD yang aman dan efisien untuk secara otomatis membangun gambar kontainer dari kode sumber Anda. Anda dapat mengonfigurasi aturan build berdasarkan Dockerfile untuk secara otomatis memicu pembuatan gambar dan mendorongnya ke repositori gambar Anda.
Prasyarat
Anda telah membuat instans Container Registry Enterprise Edition. Untuk informasi selengkapnya, lihat Buat instans Edisi Perusahaan.
Anda telah menyiapkan Dockerfile untuk membangun gambar.
Informasi latar belakang
Layanan pembuatan gambar menyediakan fitur-fitur berikut:
Keamanan: Setiap tugas build dijalankan dalam lingkungan terdedikasi dan terisolasi yang eksklusif untuk akun Anda.
Stabilitas: Karena build dijalankan dalam lingkungan terdedikasi, waktu build untuk repositori kode sumber yang sama konsisten dan dapat diprediksi.
Akselerasi cerdas:
Layanan ini secara default menggunakan tool BuildKit yang efisien. BuildKit menyediakan kemampuan build yang kuat, terutama untuk build multi-tahap, serta mendukung berbagai fitur build lengkap.
Layanan ini menyimpan gambar dasar umum. Penggunaan gambar dasar ini menghilangkan proses pull gambar dari proses build, sehingga secara signifikan mengurangi waktu build.
Layanan ini menggunakan cache remote untuk mempercepat proses build.
Layanan pembuatan gambar mendukung berbagai platform hosting kode dan pembuatan gambar yang dipercepat.
Platform hosting kode: Tabel berikut mencantumkan platform hosting kode yang didukung.
Code Platform
Versi platform
Metode autentikasi
Batas pemicu build
Gitee
Instans Edisi Personal tidak didukung.
All
Gitee OAuth authentication
None
GitHub
Hanya akun GitHub personal yang didukung.
GitHub OAuth authentication
None
GitLab
All
personal access token
None
Bitbucket
All
Bitbucket OAuth authentication
None
Pembuatan gambar yang dipercepat: Setelah gambar standar didorong, sistem secara otomatis membuat versi yang dipercepat untuk pemuatan sesuai permintaan. Untuk informasi selengkapnya, lihat Muat gambar kontainer sesuai permintaan.
Langkah 1: Hubungkan ke platform kode sumber
Sebelum membangun gambar, hubungkan Container Registry ke platform kode sumber Anda. Untuk petunjuk detail, lihat Hubungkan ke platform kode sumber.
Repositori lokal tidak mendukung pembuatan gambar.
Untuk menghubungkan ke repositori GitLab privat dalam VPC, lihat Bangun gambar kontainer menggunakan mode build aman dalam VPC.
Langkah 2: Buat namespace
Login ke Konsol Container Registry.
Di bilah navigasi atas, pilih wilayah.
Di panel navigasi kiri, klik Instances.
Pada halaman Instances, klik instans Edisi Perusahaan yang dituju.
Di panel navigasi kiri, pilih .
Pada halaman Namespace, klik Create Namespace.
Di panel Create Namespace, masukkan nama Namespace, aktifkan atau nonaktifkan Automatically Create Repository menjadi On atau Off, lalu klik Confirm.
Jika Anda mengaktifkan Automatically Create Repository menjadi On, konfigurasikan parameter berikut:
Parameter
Deskripsi
Repository Type
Public: Secara default, pengguna harus login ke instans Edisi Perusahaan untuk menarik gambar publik. Jika Anda ingin mengizinkan penarikan anonim, aktifkan pengaturan penarikan anonim untuk instans tersebut.
Karena pengguna yang tidak sah dapat menarik gambar dari repository publik, kami menyarankan agar Anda mengatur repository Anda sebagai Private untuk memastikan keamanan data.
Private: Pengguna harus login ke instans Edisi Perusahaan dan memiliki izin pull untuk menarik gambar privat.
Immutable Image Tags
Menentukan apakah tag gambar dapat Flexible. Jika diaktifkan, semua tag gambar dalam repository ini kecuali
latesttidak dapat ditimpa. Hal ini memastikan konsistensi versi gambar kontainer.Accelerated Image
Menentukan apakah akan Off repository. Jika Anda memilih opsi ini, tag gambar yang dipercepat dengan akhiran
_acceleratedakan dibuat secara otomatis di repository ini.
Langkah 3: Buat repository gambar
Akselerasi gambar hanya tersedia untuk instans Edisi Standar dan Edisi Lanjutan. Kami menyarankan agar Anda melakukan upgrade instans Edisi Dasar ke instans Edisi Standar atau Edisi Lanjutan.
Buat repositori gambar dan hubungkan ke repositori kode sumber. Repositori ini menyimpan semua gambar yang dibangun dari repositori kode sumber yang terhubung.
Login ke Konsol Container Registry.
Di bilah navigasi atas, pilih wilayah.
Di panel navigasi kiri, klik Instances.
Pada halaman Instances, klik instans Edisi Perusahaan yang ingin Anda kelola.
-
Di panel navigasi kiri halaman detail instans, pilih .
Pada halaman Repositories, klik Create Repository.
-
Di wizard Repository Info, konfigurasikan Namespace, Repository Name, Repository Type, Image Version, Accelerated Image, Summary, dan Description. Lalu, klik Next.
Pada langkah Code Source, pilih Code Source, konfigurasikan Build Settings dan Build Rules, lalu klik Create Repository.
Parameter
Deskripsi
Code source
Pilih sumber kode.
Build settings
Automatically Build Images When Code Changes: Jika Anda mengaktifkan opsi ini, pembuatan gambar akan dipicu secara otomatis ketika kode dikomit ke suatu branch.
Build With Servers Deployed Outside Chinese Mainland: Jika opsi ini diaktifkan, proses build menggunakan tautan akselerasi untuk menarik data dari sumber luar negeri. Anda dapat mengaktifkan Build With Servers Deployed Outside Chinese Mainland jika proyek Anda menggunakan GitHub atau Bitbucket sebagai sumber kode, atau jika Dockerfile Anda mengunduh file dari luar negeri dan Anda mengalami ketidakstabilan jaringan lintas batas.
Build Without Cache: Jika opsi ini diaktifkan, gambar dasar akan ditarik ulang secara paksa untuk setiap pembuatan gambar, yang dapat meningkatkan waktu build. Anda dapat menonaktifkan Build Without Cache untuk mempercepat pembuatan gambar.
Klik repositori gambar yang dituju pada halaman Repositories. Jika Build muncul di panel navigasi kiri, repositori gambar berhasil terhubung ke repositori kode sumber.
Langkah 4: Bangun gambar
Jika Build tidak muncul di halaman manajemen repositori, koneksi ke repositori kode sumber gagal. Kembali ke Langkah 1 untuk menghubungkan ulang.
Login ke Konsol Container Registry.
Di bilah navigasi atas, pilih wilayah.
Di panel navigasi kiri, klik Instances.
Pada halaman Instances, klik instans Edisi Perusahaan yang ingin Anda kelola.
-
Di panel navigasi kiri halaman detail instans, pilih .
Pada halaman Repositories, temukan repositori yang dituju dan klik Manage di kolom Actions.
Di panel navigasi kiri, klik Build. Di bagian Build Rules, klik Add Build Rule. Di langkah Build Information, konfigurasikan parameter lalu klik Next.
Parameter
Deskripsi
Type
Jenis referensi kode sumber yang digunakan. Nilai yang valid: Branch dan Tag.
Branch/Tag
Pilih atau masukkan branch atau tag. Ekspresi reguler didukung. Jika ekspresi reguler adalah release-(?<imageTag>\w*), perubahan kode pada branch bernama release-v1 akan memicu pembuatan gambar otomatis dengan tag v1. Pembuatan manual tidak didukung. Untuk informasi selengkapnya, lihat Named capturing groups in regular expressions.
CatatanJika Anda menetapkan ekspresi reguler, hanya pembuatan otomatis yang didukung. Pembuatan manual tidak didukung.
Build Context Directory
Direktori yang berisi Dockerfile. Jalur ini relatif terhadap direktori root dari branch atau tag yang dipilih. Misalnya, jika branch Anda adalah
masterdan Dockerfile Anda berada di root branchmaster, atur direktori menjadi/.Dockerfile Filename
Nama Dockerfile. Nilai default adalah
Dockerfile.Pada langkah Image Version, konfigurasikan parameter, klik Save, lalu klik Next.
CatatanAnda dapat mengklik Add Configuration untuk menambahkan hingga tiga tag gambar.
Parameter
Deskripsi
Image Version
Tag gambar, seperti latest. Anda dapat menggunakan named capturing groups untuk menggunakan konten yang ditangkap dalam pengaturan Branch/Tag.
Build Time
Waktu (UTC+8) saat kode sumber didorong. Tersedia dua format, seperti 20201015 dan 202010151613.
CatatanParameter ini opsional. Jika Anda memilih parameter ini, hanya pembuatan otomatis yang didukung. Pembuatan manual tidak didukung.
Commit ID
ID commit terbaru. Secara default, enam karakter pertama yang digunakan. Anda dapat menggeser slider untuk mengatur jumlah karakter.
CatatanParameter ini opsional. Jika Anda memilih parameter ini, hanya pembuatan otomatis yang didukung. Pembuatan manual tidak didukung.
Pada langkah Build Configurations, konfigurasikan parameter build lalu klik Confirm.
Parameter
Deskripsi
Build Architecture
Pilih satu atau beberapa arsitektur build. Build paralel didukung, sehingga menghasilkan satu tag gambar yang sesuai dengan beberapa gambar spesifik arsitektur.
Build Parameters
Argumen waktu proses untuk pembuatan gambar, ditentukan sebagai pasangan kunci-nilai yang peka huruf besar/kecil. Anda dapat menetapkan hingga 20 argumen build. Argumen ini dapat memodifikasi variabel lingkungan dalam Dockerfile, sehingga Dockerfile yang sama dapat menghasilkan hasil berbeda.
Picu aturan build.
Anda dapat memicu aturan build dengan salah satu cara berikut:
Di halaman Build, di bagian Build Rules, temukan aturan build yang dituju dan klik Build di kolom Actions.
Komit kode ke branch yang dikonfigurasi di repositori kode sumber untuk memicu pembuatan gambar.
CatatanDi halaman Build, di bagian Build Log, temukan tugas build yang dituju dan klik Cancel di kolom Actions untuk membatalkan tugas build.
Di halaman Build, di bagian Build Log, temukan tugas build yang dituju dan klik Log di kolom Actions untuk melihat log proses build.
Di panel navigasi kiri, klik Image Version. Jika gambar yang dibangun ditampilkan, berarti pembuatan berhasil.
Contoh 1: Bangun dari branch tetap
Contoh berikut menunjukkan pengaturan parameter untuk aturan yang membangun gambar dari branch main tetap:
Type: Branch
Branch/Tag: main
Build Context Directory: /
Dockerfile Filename: Dockerfile
Image Version: latest
Pembuatan gambar dipicu ketika kode sumber pada branch main berubah atau Anda memulai pembuatan langsung secara manual. Direktori kerja untuk pembuatan adalah /, dan pembuatan menggunakan file bernama Dockerfile di direktori ini. Tag gambar yang dihasilkan setelah pembuatan selesai adalah latest. Aturan build ditunjukkan pada gambar di bawah ini.

Contoh 2: Bangun dari branch yang cocok dengan ekspresi reguler
Contoh berikut menunjukkan pengaturan parameter untuk aturan yang membangun gambar dari branch yang cocok dengan ekspresi reguler:
Type: Branch
Branch/Tag: release-(?<imageTag>\w*)
Build Context Directory: /
Dockerfile Filename: Dockerfile
Image Version: ${imageTag}
Build Time: yyyyMMddHHmm
Commit ID: 30
Pembuatan gambar dipicu ketika kode sumber pada branch yang dimulai dengan release- berubah. Direktori kerja adalah /, dan file build adalah Dockerfile di direktori kerja.
Misalnya, jika terjadi perubahan kode pada branch release-v1, ekspresi reguler release-(?<imageTag>\w*) menangkap v1 dari nama branch ke dalam variabel imageTag, yang kemudian digunakan sebagai tag gambar. Setelah pembuatan selesai, tag gambar yang dihasilkan adalah v1-202010151625-d4ef3dc3b77a011a5779eec7efdd45. Aturan build ditunjukkan pada gambar berikut.

Operasi terkait
Setelah gambar dibangun, Anda dapat melakukan operasi berikut:
Menarik gambar dari kluster ACK tanpa menggunakan rahasia. Untuk informasi selengkapnya, lihat Gunakan komponen aliyun-acr-credential-helper untuk menarik gambar kontainer tanpa rahasia.
Menggunakan gambar untuk membuat beban kerja di kluster ACK. Untuk informasi selengkapnya, lihat Buat beban kerja tanpa status menggunakan Deployment.
Gunakan fitur akselerasi P2P di kluster ACK untuk mempercepat penarikan gambar. Untuk informasi selengkapnya, lihat Gunakan akselerasi P2P di kluster ACK atau ACK Serverless.