Konfigurasikan instans ACR Enterprise Edition agar secara otomatis membuat dan mendorong gambar kontainer setiap kali Anda melakukan commit kode ke repositori yang terhubung. Setelah pengaturan selesai, setiap perubahan kode akan memicu proses pembuatan dan pendorongan ke repositori gambar Anda.
Prasyarat
Sebelum memulai, pastikan bahwa:
Anda telah membuat instans Container Registry Enterprise Edition. Untuk informasi selengkapnya, lihat bagian "Langkah 1: Buat instans Container Registry Enterprise Edition" dalam topik Dorong gambar ke instans Container Registry Enterprise Edition dan tarik gambar dari instans tersebut.
Anda memiliki Dockerfile di repositori sumber Anda untuk membuat gambar.
Informasi latar belakang
Layanan pembuatan gambar ACR Enterprise Edition menyediakan kemampuan berikut:
Keamanan: Setiap tugas pembuatan dijalankan di lingkungan eksklusif untuk Akun Alibaba Cloud Anda, memastikan isolasi kuat antar penyewa.
Stabilitas: Tugas pembuatan dijalankan di lingkungan khusus Anda, sehingga waktu pembuatan tetap konsisten di berbagai proses pembuatan dari repositori kode sumber yang sama.
Akselerasi cerdas:
ACR menggunakan BuildKit secara default, yang memiliki kemampuan kuat untuk skenario pembuatan multi-tahap dan mendukung berbagai fitur pembuatan.
ACR menyimpan gambar dasar umum secara lokal, sehingga pembuatan tidak perlu menariknya dari sumber eksternal, mengurangi waktu pembuatan.
ACR menggunakan cache jarak jauh untuk lebih mempercepat pembuatan gambar.
Platform hosting kode yang didukung
Tabel berikut mencantumkan platform hosting kode yang didukung oleh Container Registry Enterprise Edition:
ACR mendukung platform hosting kode berikut:
Platform hosting kode
Versi
Metode autentikasi untuk binding
Batasan pemicu pembuatan gambar
Gitee
Semua versi
Otentikasi OAuth Gitee
Tidak ada
GitHub
Versi developer GitHub
Otentikasi OAuth GitHub
Tidak ada
GitLab
Semua versi
Token akses pribadi (Personal access token)
Tidak ada
Bitbucket
Semua versi
Otentikasi OAuth Gitee
Tidak ada
CatatanInstans Edisi Personal tidak dapat di-bind ke Gitee.
Pembuatan gambar terakselerasi: Setelah Anda mendorong gambar kontainer, ACR dapat secara otomatis menghasilkan versi terakselerasi dari gambar tersebut. Untuk informasi selengkapnya, lihat Muat sumber daya gambar kontainer sesuai permintaan.
Langkah 1: Bind instans Anda ke platform hosting kode
Bind instans ke platform hosting kode agar ACR dapat mengakses kode sumber Anda dan memicu pembuatan saat terjadi perubahan kode. Untuk petunjuk lengkap, lihat Bind platform hosting kode sumber.
Anda tidak dapat membuat gambar dari repositori kode on-premises.
Untuk bind repositori kode GitLab privat di virtual private cloud (VPC), lihat Buat gambar kontainer di VPC.
Langkah 2: Buat namespace
Buat namespace untuk mengorganisasi repositori gambar Anda. Mengaktifkan pembuatan repositori otomatis memungkinkan Anda mengonfigurasi pengaturan default yang diterapkan ke semua repositori di bawah namespace ini.
Login ke Konsol Container Registry.
Di bilah navigasi atas, pilih Wilayah.
Di panel navigasi kiri, klik Instances.
Di halaman Instances, klik instans Enterprise Edition tempat Anda ingin membuat namespace.
Di panel navigasi kiri, pilih Repository > Namespace.
Di halaman Namespace, klik Create Namespace.
Di sidebar Create Namespace, konfigurasikan Namespace dan atur Automatically Create Repository ke On atau Off. Lalu klik Confirm.
Jika Anda mengatur Automatically Create Repository ke On, konfigurasikan parameter berikut:
Parameter
Deskripsi
Repository Type
Pilih Public atau Private. Public: Secara default, gambar publik mengharuskan pengguna login ke instans sebelum dapat ditarik. Untuk mengizinkan penarikan anonim, aktifkan pengaturan penarikan anonim publik instans. Karena repositori publik dapat ditarik oleh pengguna tanpa otorisasi, atur repositori ke Private untuk melindungi data Anda. Private: Pengguna harus login ke instans dan memiliki otorisasi izin Pull sebelum dapat menarik gambar privat.
Immutable Image Tags
Pilih Flexible atau Immutable. Saat diatur ke Immutable, semua tag gambar kecuali latest tidak dapat ditimpa.
Accelerated Images
Saat diaktifkan, versi terakselerasi dari setiap gambar secara otomatis dihasilkan setelah gambar didorong. Gambar terakselerasi memiliki akhiran _accelerated yang ditambahkan ke tag-nya.
Langkah 3: Buat repositori gambar
Gambar terakselerasi hanya dapat dibuat pada instans Container Registry Edisi Standar atau Edisi Lanjutan. Tingkatkan instans Edisi Dasar ke Edisi Standar atau Edisi Lanjutan sebelum membuat gambar terakselerasi.
Buat repositori gambar dan bind ke repositori kode sumber. Semua gambar yang dibuat dari repositori kode sumber tersebut akan didorong ke repositori gambar ini.
Login ke Konsol Container Registry.
Di bilah navigasi atas, pilih Wilayah.
Di panel navigasi kiri, klik Instances.
Di halaman Instances, klik instans Enterprise Edition yang ingin Anda kelola.
Di panel navigasi kiri, pilih Repository > Repositories.
Di halaman Repositories, klik Create Repository.
Di langkah Repository Info, konfigurasikan Namespace, Repository Name, Repository Type, Tags, Accelerated Image, Summary, dan Description. Lalu klik Next.
Di langkah Code Source, konfigurasikan Code Source, Build Settings, dan Build Rules, lalu klik Create Repository.
Tabel berikut menjelaskan parameter Build Settings:
Parameter
Deskripsi
Automatically Build Images When Code Changes
Saat diaktifkan, aturan pembuatan secara otomatis dipicu ketika kode di-commit ke branch.
Build With Servers Deployed Outside Chinese Mainland
Aktifkan opsi ini jika sumber kode Anda berada di GitHub atau Bitbucket, atau jika Dockerfile Anda mengunduh dependensi dari luar Tiongkok dan koneksi jaringan lintas batas tidak stabil. ACR menggunakan tautan terakselerasi untuk menarik sumber data eksternal selama pembuatan. Opsi ini hanya tersedia di wilayah tertentu. Jika opsi ini tidak muncul saat Anda membuat repositori gambar, wilayah saat ini tidak mendukung fitur ini.
Build Without Cache
Saat diaktifkan, ACR menarik gambar dasar dari sumber setiap kali, mengabaikan layer cache. Hal ini dapat memperlambat pembuatan. Nonaktifkan opsi ini untuk menggunakan layer cache dan mempercepat pembuatan.
Di halaman Repositories, klik repositori gambar yang telah dibuat. Jika Build ditampilkan di panel navigasi kiri halaman manajemen repositori, berarti repositori gambar telah di-bind ke repositori kode sumber.
Langkah 4: Buat gambar
Konfigurasikan aturan pembuatan untuk menentukan cara dan kapan ACR membuat gambar dari repositori Anda, lalu picu pembuatan dan verifikasi hasilnya.
Jika Anda tidak menemukan Build di halaman manajemen repositori, instans belum di-bind ke platform hosting kode. Kembali ke Langkah 1 untuk meng-bind ulang instans.
Login ke Konsol Container Registry.
Di bilah navigasi atas, pilih Wilayah.
Di panel navigasi kiri, klik Instances.
Di halaman Instances, klik instans Enterprise Edition yang ingin Anda kelola.
-
Di panel navigasi kiri halaman detail instans, pilih .
Di halaman Repositories, temukan repositori gambar yang telah Anda buat 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 berikut lalu klik Next.
Parameter
Deskripsi
Type
Jenis repositori kode sumber. Nilai yang valid: Branch dan Tag.
Branch/Tag
Pilih atau masukkan branch atau tag. Ekspresi reguler didukung. Misalnya, jika Anda memasukkan release-(?<imageTag>\w*) , ACR secara otomatis membuat gambar ketika kode sumber di branch release-v1 diperbarui. Untuk informasi lebih lanjut tentang named capturing groups, lihat Gunakan ekspresi reguler dalam named capturing groups .
CatatanSaat Anda menggunakan ekspresi reguler, hanya ACR yang dapat memicu pembuatan. Pembuatan manual tidak didukung.
Build Context Directory
Direktori yang berisi Dockerfile, relatif terhadap root branch atau tag. Misalnya, jika branch adalah master dan Dockerfile berada di root branch, atur nilai ini menjadi /.
Dockerfile Filename
Nama file Dockerfile. Nama default-nya adalah Dockerfile.
Di langkah Tag, konfigurasikan parameter berikut, klik Save, lalu klik Next.
CatatanKlik Add Configuration untuk menambahkan tag gambar. Anda dapat menambahkan hingga tiga tag gambar.
Parameter
Deskripsi
Image Tag
Tag untuk gambar yang dibuat, misalnya latest. Named capturing groups didukung. Jika Anda telah menentukan named capturing group di Branch/Tag, referensikan nilai yang ditangkap di sini.
Build Time
(Opsional) Waktu (UTC+8) saat kode sumber didorong. Format yang diterima: 20201015 atau 202010151613 .
CatatanJika Anda mengatur parameter ini, hanya ACR yang dapat memicu pembuatan. Pembuatan manual tidak didukung.
Commit ID
(Opsional) Jumlah karakter yang digunakan dari ID commit kode yang paling baru didorong. Secara default, enam karakter pertama digunakan. Sesuaikan slider untuk mengubah jumlahnya.
CatatanJika Anda mengatur parameter ini, hanya ACR yang dapat memicu pembuatan. Pembuatan manual tidak didukung.
Di langkah Build Configurations, konfigurasikan parameter berikut lalu klik Next.
Parameter
Deskripsi
Build Architecture
Pilih satu atau beberapa arsitektur target. Jika Anda memilih beberapa arsitektur, ACR menghasilkan gambar terpisah untuk setiap arsitektur dengan tag yang sama.
Build Parameters
Pasangan kunci-nilai yang diteruskan ke proses pembuatan. Nama parameter bersifat case-sensitive. Konfigurasikan hingga 20 parameter pembuatan dengan mengklik Add Configuration.
Picu build dengan salah satu metode berikut:
Di bagian Build Rules halaman Build, temukan aturan pembuatan dan klik Build di kolom Actions.
Dorong commit kode ke branch yang dikonfigurasi di repositori kode sumber untuk secara otomatis memicu aturan pembuatan.
Monitor pembuatan: Di bagian Build Log, temukan tugas pembuatan gambar dan klik Log di kolom Actions untuk melihat log pembuatan. Untuk menghentikan pembuatan yang sedang berjalan, klik Cancel di kolom Actions.
Verifikasi hasil: Di panel navigasi kiri, klik Image Tag. Jika gambar yang Anda buat tercantum, berarti pembuatan berhasil.
Di panel navigasi kiri, klik Image Tag. Jika gambar yang Anda buat ditampilkan, berarti gambar telah berhasil dibuat.
Contoh
Dua contoh berikut mengilustrasikan konfigurasi aturan pembuatan umum. Contoh 1 adalah pengaturan sederhana yang mendukung pembuatan manual maupun otomatis. Contoh 2 menggunakan ekspresi reguler untuk membuat tag gambar versi dari nama branch rilis, dan hanya mendukung pembuatan otomatis.
Contoh 1: Buat dari branch main (pembuatan manual diizinkan)
Tujuan: Buat gambar dengan tag latest dari branch main, yang dapat dipicu secara manual atau otomatis saat kode didorong.
Parameter | Nilai |
Type | Branch |
Branch/Tag | main |
Build Context Directory | / |
Dockerfile Filename | Dockerfile |
Image Tag | latest |
Hasil: Saat Anda mengklik Build atau saat kode sumber di branch main diperbarui, ACR membuat gambar menggunakan Dockerfile di direktori root branch main. Gambar yang dihasilkan diberi tag latest.
Karena Build Time dan Commit ID tidak dikonfigurasi, Anda dapat memicu pembuatan secara manual.
Contoh 2: Buat dari branch yang cocok regex (pembuatan manual tidak diizinkan)
Tujuan: Secara otomatis membuat gambar versi dari branch rilis, di mana nama branch menentukan tag gambar.
Parameter | Nilai |
Type | Branch |
Branch/Tag | release-(?<imageTag>\w*) |
Build Context Directory | / |
Dockerfile Filename | Dockerfile |
Image Tag | ${imageTag} |
Build Time | yyyyMMddHHmm |
Commit ID | 30 |
Hasil: Saat kode sumber di branch yang namanya diawali dengan release- diperbarui, ACR secara otomatis membuat gambar. Ekspresi reguler release-(?<imageTag>\w*) menangkap bagian versi dari nama branch dan menetapkannya ke variabel imageTag, yang kemudian digunakan dalam tag gambar.
Misalnya, dorongan ke branch release-v1 menangkap v1 sebagai imageTag. Dikombinasikan dengan waktu pembuatan dan ID commit, tag gambar yang dihasilkan adalah: v1-202010151625-d4ef3dc3b77a011a5779eec7efdd45.
Karena Build Time dan Commit ID dikonfigurasi, hanya ACR yang dapat memicu pembuatan ini. Pembuatan manual tidak didukung.
Langkah berikutnya
Setelah gambar dibuat, gunakan dalam kluster Container Service for Kubernetes (ACK) dengan salah satu cara berikut:
Tarik gambar tanpa rahasia (secret): Gunakan add-on aliyun-acr-credential-helper untuk autentikasi otomatis. Untuk informasi selengkapnya, lihat Gunakan komponen aliyun-acr-credential-helper untuk menarik gambar tanpa menggunakan Secret.
Deploy gambar sebagai aplikasi: Buat Deployment untuk menjalankan gambar Anda di kluster ACK. Untuk informasi selengkapnya, lihat Buat aplikasi tanpa status menggunakan Deployment.
Percepat penarikan gambar: Gunakan fitur akselerasi P2P untuk mempercepat distribusi gambar di seluruh node. Untuk informasi selengkapnya, lihat Gunakan fitur akselerasi P2P di kluster ACK Serverless dan ACK.