Container Registry Enterprise Edition menyediakan pipeline integrasi berkelanjutan yang aman dan efisien untuk secara otomatis membangun container image dari kode sumber. Anda dapat mengonfigurasi aturan build berdasarkan Dockerfile guna membangun gambar secara otomatis dan mendorongnya ke repository image saat kode dikomit.
Prasyarat
-
Anda telah membuat instans Edisi Perusahaan Container Registry. Untuk informasi selengkapnya, lihat Buat instans Edisi Perusahaan.
-
Repository kode sumber Anda berisi Dockerfile.
Informasi latar belakang
Layanan pembuatan container image menawarkan fitur-fitur berikut:
-
Keamanan: Layanan ini menjalankan setiap tugas build dalam lingkungan terisolasi yang eksklusif untuk Anda.
-
Stabilitas: Karena setiap build dijalankan dalam lingkungan khusus, waktu build tetap stabil dan konsisten meskipun Anda melakukan build berulang kali dari repository kode sumber yang sama.
-
Akselerasi cerdas:
-
Secara default, layanan ini menggunakan BuildKit—tool build yang andal dan sangat efisien untuk build multi-tahap serta mendukung berbagai fitur build.
-
Layanan ini menyimpan cache base image yang sering digunakan, sehingga menghilangkan kebutuhan untuk menarik (pull) image tersebut selama proses build dan secara signifikan mempercepat waktu build.
-
Layanan ini memanfaatkan remote build cache untuk mempercepat proses build.
-
Layanan pembuatan container image mendukung berbagai platform hosting kode dan kemampuan akselerasi gambar:
-
Platform hosting kode: Layanan ini mendukung platform hosting kode berikut.
-
Akselerasi gambar: Anda dapat mengaktifkan pemuatan on-demand untuk gambar Anda. Setelah mendorong gambar standar, sistem akan secara otomatis membuat versi yang dipercepat. Untuk informasi selengkapnya, lihat Muat container image on demand.
Langkah 1: Hubungkan platform hosting kode
Sebelum membangun gambar, Anda harus menghubungkan platform hosting kode terlebih dahulu. Untuk informasi selengkapnya, lihat Hubungkan platform hosting kode.
-
Build gambar dari repository lokal tidak didukung.
-
Untuk menghubungkan repository GitLab privat dalam VPC, lihat Gunakan fitur secure build dalam VPC untuk membangun container image.
Langkah 2: Buat namespace
Masuk ke Konsol Container Registry.
Di bilah navigasi atas, pilih wilayah.
-
Di panel navigasi kiri, pilih Instances.
-
Di halaman Instances, klik instans Edisi Perusahaan yang dituju.
-
Di panel navigasi kiri halaman manajemen instans, pilih .
-
Di halaman Namespace, klik Create Namespace.
-
Di sidebar Create Namespace, atur nama Namespace, pilih On atau Off untuk Automatically Create Repository, lalu klik Confirm.
Jika Anda memilih On untuk Automatically Create Repository, ikuti langkah-langkah berikut:
UI element
Deskripsi
Repository Type
-
Public: Secara default, pengguna harus masuk ke instans Edisi Perusahaan untuk menarik gambar publik. Untuk mengizinkan penarikan anonim, Anda harus mengaktifkan akses anonim untuk instans tersebut.
Kami menyarankan Anda mengatur jenis repository menjadi Private untuk memastikan keamanan data.
-
Private: Untuk menarik gambar privat, pengguna harus masuk ke instans Edisi Perusahaan dan memiliki izin Pull yang diperlukan.
Immutable Image Tags
Flexible. Jika Anda memilih opsi ini, tag gambar di repository ini selain
latesttidak dapat ditimpa, sehingga menjamin konsistensi tag container image.Accelerated Image
Menentukan apakah fitur ini Off. Jika Anda mencentang kotak ini, tag gambar yang dipercepat dengan akhiran
_acceleratedakan dibuat secara otomatis di repository. -
Langkah 3: Buat repository gambar
Akselerasi gambar hanya tersedia untuk instans Edisi Standar dan Edisi Lanjutan. Kami menyarankan Anda melakukan upgrade instans Edisi Dasar ke Edisi Standar atau Edisi Lanjutan.
Buat repository gambar dan hubungkan ke repository kode sumber. Layanan ini akan mendorong gambar yang dibangun dari repository kode sumber yang terhubung ke repository ini.
Masuk ke Konsol Container Registry.
Di bilah navigasi atas, pilih wilayah.
-
Di panel navigasi kiri, pilih Instances.
Di halaman Instances, klik instans Edisi Perusahaan yang ingin Anda kelola.
-
Di panel navigasi kiri halaman detail instans, pilih .
- Di 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.
-
Di langkah Code Source, konfigurasikan Code Source, Build Settings, dan Build Rules. Lalu, klik Create Repository.
Parameter
Deskripsi
Code Source
Pilih sumber kode Anda.
Build Settings
-
Automatically build images when code changes: Jika opsi ini diaktifkan, build akan dipicu secara otomatis saat kode dikomit ke branch yang ditentukan.
-
Build With Servers Deployed Outside Chinese Mainland: Fitur ini menggunakan tautan akselerasi untuk menarik data dari sumber di luar Tiongkok daratan selama proses build. Jika proyek Anda menggunakan GitHub atau Bitbucket sebagai sumber kode, atau jika file dalam Dockerfile Anda perlu diunduh dari situs di luar Tiongkok daratan tetapi jaringan lintas batas tidak stabil, Anda dapat menggunakan Build With Servers Deployed Outside Chinese Mainland.
-
Build Without Cache: Saat opsi ini dipilih, base dependency image akan ditarik ulang secara paksa untuk setiap build, yang dapat meningkatkan waktu build. Menonaktifkan Build Without Cache dapat mempercepat waktu build gambar.
Di halaman Repositories, klik repository gambar yang dituju. Jika Build muncul di panel navigasi kiri, repository gambar telah berhasil terhubung ke repository kode sumber.
-
Langkah 4: Bangun gambar
Jika Build tidak muncul di halaman manajemen repository, koneksi ke repository kode sumber gagal. Lihat Langkah 1 untuk menghubungkannya kembali.
Masuk ke Konsol Container Registry.
Di bilah navigasi atas, pilih wilayah.
-
Di panel navigasi kiri, pilih Instances.
Di halaman Instances, klik instans Edisi Perusahaan yang ingin Anda kelola.
-
Di panel navigasi kiri halaman manajemen instans, pilih .
-
Di halaman Repositories, temukan repository yang dituju dan klik Actions di kolom Manage.
-
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
Menentukan jenis sumber untuk build. Nilai yang valid adalah Branch dan Tag.
Branch/Tag
Pilih atau masukkan branch atau tag. Ekspresi reguler didukung. Misalnya, jika regex-nya adalah
release-(?<imageTag>\w*), perubahan pada kode sumberrelease-v1akan secara otomatis memicu build untuk gambar dengan tagv1. Build manual tidak didukung. Untuk informasi selengkapnya, lihat Named capturing groups in regular expressions.CatatanJika Anda mengonfigurasi ekspresi reguler, hanya build otomatis yang didukung. Build manual tidak didukung.
Build Context Directory
Jalur relatif ke direktori yang berisi Dockerfile. Jalur ini relatif terhadap root dari branch atau tag yang dipilih. Misalnya, jika branch Anda adalah master dan Dockerfile berada di root branch master, direktori konteks build adalah
/.Dockerfile Filename
Nama Dockerfile. Nilai default-nya adalah
Dockerfile. -
Di langkah Image Version, konfigurasikan parameter, klik Save, lalu klik Next.
CatatanKlik Add Configuration untuk menambahkan lebih banyak tag gambar. Anda dapat menambahkan maksimal tiga tag gambar.
Parameter
Deskripsi
Image Version
Tentukan tag gambar, seperti
latest. Anda juga dapat menggunakan nilai yang ditangkap dari bidang Branch/Tag.Build Time
Timestamp (UTC+8) dari push kode. Tersedia dua format:
20201015dan202010151613.CatatanParameter ini opsional. Jika Anda memilihnya, hanya build otomatis yang didukung. Build manual tidak didukung.
Commit ID
Commit ID dari push kode terbaru. Secara default, 6 karakter pertama digunakan. Anda dapat menyesuaikan slider untuk mengatur jumlah karakter.
CatatanParameter ini opsional. Jika Anda memilihnya, hanya build otomatis yang didukung. Build manual tidak didukung.
-
Di langkah Build Configurations, konfigurasikan parameter build lalu klik Confirm.
Parameter
Deskripsi
Build Architecture
Pilih arsitektur build. Build paralel didukung. Satu tag gambar dapat sesuai dengan gambar untuk beberapa arsitektur.
Build Parameters
Parameter runtime untuk pembuatan gambar. Parameter build terdiri dari pasangan kunci-nilai yang case-sensitive. Anda dapat mengatur maksimal 20 parameter build. Anda dapat mengatur parameter build untuk memodifikasi variabel lingkungan dalam Dockerfile, sehingga memungkinkan Anda menghasilkan output berbeda dari Dockerfile yang sama.
-
Picu aturan build.
Anda dapat memicu aturan build dengan salah satu cara berikut:
-
Di halaman Build, buka bagian Build Rules, temukan aturan build yang dituju, lalu klik Build di kolom Actions.
-
Komit kode ke branch yang telah dikonfigurasi di repository kode sumber.
Catatan-
Di halaman Build, buka bagian Build Log. Untuk membatalkan tugas build, temukan tugas tersebut lalu klik Cancel di kolom Actions.
-
Di halaman Build, buka bagian Build Log. Untuk melihat log proses build, temukan tugas tersebut lalu klik Log di kolom Actions.
Di panel navigasi kiri, klik Image Version. Jika Anda dapat melihat gambar yang telah dibangun, berarti pembuatan gambar berhasil.
-
Contoh 1: Bangun dari branch tetap
Berikut adalah contoh parameter aturan build untuk membangun gambar dari branch tetap bernama main:
-
Type: Branch
-
Branch/Tag: main
-
Build Context Directory: /
-
Dockerfile Filename: Dockerfile
-
Image Version: latest
Pembuatan gambar dipicu ketika terjadi perubahan pada kode sumber di branch main atau ketika Anda secara manual mengklik Build. Direktori kerja adalah /, dan build menggunakan file bernama Dockerfile di direktori ini. Gambar yang dihasilkan diberi tag latest. Aturan build ditunjukkan pada gambar berikut.

Contoh 2: Bangun dari branch yang cocok dengan ekspresi reguler
Berikut adalah contoh parameter aturan build untuk 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
Saat Anda mengubah kode sumber di branch yang namanya diawali dengan release-, sistem akan memicu pembuatan gambar. Konteks build adalah direktori root (/), dan Dockerfile yang digunakan adalah file bernama Dockerfile di direktori tersebut.
Sebagai contoh, ambil perubahan pada kode sumber branch release-v1. Ekspresi reguler release-(?<imageTag>\w*) menangkap v1 dari nama branch dan menetapkannya ke variabel imageTag, yang kemudian digunakan layanan untuk tag gambar. Setelah build selesai, tag gambar hasilnya adalah v1-202010151625-d4ef3dc3b77a011a5779eec7efdd45. Aturan build ditunjukkan pada gambar berikut.

Operasi terkait
Setelah Anda membangun gambar, Anda dapat melakukan operasi berikut:
-
Tarik gambar dari kluster ACK tanpa menggunakan secret. Untuk informasi selengkapnya, lihat Gunakan komponen aliyun-acr-credential-helper untuk menarik container image.
-
Gunakan gambar untuk membuat aplikasi di kluster ACK. Untuk informasi selengkapnya, lihat Buat Deployment tanpa status.
-
Gunakan fitur akselerasi P2P di kluster ACK untuk mempercepat penarikan gambar. Untuk informasi selengkapnya, lihat Gunakan akselerasi P2P di kluster ACK atau ACK Serverless.