全部产品
Search
文档中心

Container Registry:Gunakan Dockerfile untuk membangun gambar untuk aplikasi Java

更新时间:Jun 28, 2025

Anda dapat menggunakan pembuatan multi-tahap dari Dockerfile dan layanan pembuatan gambar dari Alibaba Cloud Container Registry untuk secara aman dan cepat membangun gambar berukuran kecil untuk aplikasi Java.

Prasyarat

Informasi latar belakang

Masalah Umum dalam Pembuatan Gambar Docker

Fitur pembuatan gambar dari Container Registry menggunakan Dockerfile untuk membangun gambar akhir dari aplikasi. Selama proses ini, Anda mungkin menghadapi masalah berikut:

  • Menulis Dockerfile sulit.

    Ketika Anda terbiasa menggunakan kerangka kerja kuat dari bahasa pemrograman, terutama Java, untuk membangun aplikasi, Anda mungkin merasa sulit menulis Dockerfile untuk membangun gambar aplikasi.

  • Gambar akhir mungkin besar ukurannya.

    Saat Anda membangun gambar, Anda mungkin menyertakan proses kompilasi, pengujian, dan pengemasan aplikasi dalam Dockerfile yang sama. Setiap perintah dalam Dockerfile membuat lapisan gambar, yang memperumit struktur gambar dan memperbesar ukuran gambar.

  • Kode sumber mungkin bocor.

    Anda mungkin mengemas kode sumber aplikasi Anda dalam gambar akhir, yang dapat menyebabkan kebocoran kode.

Manfaat Pembuatan Multi-Tahap

Ketika Anda menggunakan pembuatan multi-tahap dalam Dockerfile untuk membangun gambar untuk aplikasi yang dikembangkan menggunakan bahasa kompilasi seperti Java, Anda dapat memperoleh manfaat berikut:

  • Gambar akhir dibangun dengan cara yang aman.

    Pada tahap pertama pembuatan gambar, Anda harus menentukan gambar dasar yang sesuai. Kemudian, Anda perlu menyalin kode sumber ke gambar dasar, mengunduh dependensi aplikasi, mengkompilasi kode sumber, menguji aplikasi, dan mengemas aplikasi. Pada tahap kedua, Anda harus menentukan gambar dasar lain yang sesuai dan menyalin file dependensi waktu proses yang dihasilkan pada tahap pertama ke gambar dasar. Dengan cara ini, gambar akhir tidak berisi kode sumber.

  • Gambar akhir memiliki lebih sedikit lapisan dan ukuran yang lebih kecil.

    Gambar akhir hanya berisi gambar dasar dan artefak yang sudah dikompilasi. Akibatnya, gambar akhir terdiri dari beberapa lapisan dan membutuhkan ruang penyimpanan yang kecil.

  • Gambar akhir dibangun dengan kecepatan tinggi.

    Anda dapat menggunakan alat pembuatan seperti Docker dan Buildkit untuk menjalankan beberapa proses pembuatan secara bersamaan, yang mempercepat pembuatan gambar.

Langkah 1: Menghubungkan repositori kode sumber ke instance Container Registry

Masuk ke konsol Container Registry dan otorisasi Container Registry untuk mengakses repositori kode sumber. Dalam contoh ini, Container Registry diberi otorisasi untuk mengakses repositori kode sumber di GitHub.

  1. Masuk ke konsol Container Registry.

  2. Di bilah navigasi atas, pilih wilayah.

  3. Pada halaman Instances, klik instance Personal Edition yang ingin Anda kelola.

  4. Di panel navigasi kiri halaman manajemen instance Container Registry Personal Edition, pilih Repository > Code Source.

  5. Di kolom Actions yang sesuai dengan GitHub, klik Bind Account. Di kotak dialog GitHub, klik Go to the source code repository to bind account. Pada halaman yang muncul, masukkan nama pengguna dan kata sandi Anda untuk masuk ke GitHub.

  6. Di halaman otorisasi, klik Authorize AliyunDeveloper. Jika akun berhasil di-bind, pesan akan muncul untuk menunjukkan bahwa akun Anda telah di-bind ke GitHub. Buka halaman Code Source. Periksa apakah status layanan GitHub muncul sebagai Bound.image

Langkah 2: Membuat repositori gambar

  1. Masuk ke konsol Container Registry.

  2. Di bilah navigasi atas, pilih wilayah.

  3. Pada halaman Instances, klik instance Personal Edition yang ingin Anda kelola.

  4. Di panel navigasi kiri halaman manajemen instance Container Registry Personal Edition, pilih Repository > Repositories. Pada halaman Repositories, klik Create Repository.

  5. Konfigurasikan parameter repositori gambar.

    Parameter

    Deskripsi

    Contoh

    Region

    Wilayah tempat repositori gambar berada.

    Tiongkok (Hangzhou)

    Namespace

    Namespace tempat repositori gambar berada. Sebuah repositori gambar hanya milik satu namespace, tetapi sebuah namespace dapat berisi banyak repositori gambar.

    test23432

    Repository Name

    Nama repositori gambar.

    test

    Repository Type

    Tipe repositori gambar. Nilai valid: Public dan Private. Anda hanya dapat mendorong gambar ke repositori gambar setelah Anda masuk ke repositori gambar, terlepas dari tipe repositori. Repositori publik dapat diakses oleh siapa saja di Internet. Untuk mencegah kehilangan data, kami sarankan Anda memilih Private.

    • Public: Anda dapat menarik gambar dari repositori gambar tanpa perlu masuk ke repositori gambar.

    • Private: Anda hanya dapat menarik gambar dari repositori gambar setelah Anda masuk ke repositori gambar pada klien Docker.

    Private

    Summary

    Deskripsi singkat repositori gambar.

    -

    Description

    Deskripsi rinci repositori gambar. Format Markdown didukung.

    Gunakan Dockerfile yang telah dibuat dan fitur pembuatan gambar dari Container Registry untuk membangun, mengemas, dan menjalankan gambar.

  6. Klik Next. Pada langkah Code Source, tentukan sumber kode dan konfigurasikan pengaturan pembuatan.

    Parameter

    Deskripsi

    Code Source

    Pada tab GitHub bagian Code Source, klik Bind Account dan kemudian hubungkan repositori kode sumber yang Anda hubungkan di "Langkah 2: Otorisasi Container Registry untuk mengakses repositori kode sumber".

    Build Settings

    Dalam contoh ini, pilih Automatically Build Images When Code Changes dan Build With Servers Deployed Outside Chinese Mainland.

    • Automatically Build Images When Code Changes: Aturan pembuatan dipicu secara otomatis saat kode dikomit dari cabang.

    • Build With Servers Deployed Outside Chinese Mainland: Gambar dibangun di pusat data di luar daratan Tiongkok dan kemudian didorong ke repositori gambar di wilayah yang ditentukan.

    • Build Without Cache: Sistem menarik gambar dasar setiap kali gambar akan dibangun. Ini mungkin memperlambat proses pembuatan.

  7. Klik Create Repository.

    Setelah repositori gambar dibuat, Anda akan dialihkan ke halaman detail repositori gambar. Anda dapat melihat informasi dasar tentang repositori gambar di halaman detail.

  8. Di panel navigasi kiri halaman detail repositori gambar, klik ikon 23030201 di sebelah nama repositori. Pada halaman Repositories, Anda dapat melihat repositori gambar yang Anda buat. Jika Normal ditampilkan di kolom Status repositori gambar, repositori gambar telah dibuat.

Langkah 3: Membangun gambar

  1. Di panel navigasi kiri, pilih Repository > Repositories. Pada halaman Repositories, temukan repositori gambar. Klik nama repositori atau klik Manage di kolom Actions untuk pergi ke halaman detail repositori.

  2. Di panel navigasi kiri, klik Build. Pada halaman yang muncul, klik Add Build Rule di bagian Build Rules.

  3. Di kotak dialog Add Build Rule, atur parameter sesuai kebutuhan.

    Parameter

    Deskripsi

    Contoh

    Type

    Tipe konten yang didorong ke repositori kode sumber untuk memicu aturan pembuatan. Nilai valid: Branch dan Tag.

    Branch

    Branch/Tag

    Cabang kode atau tag yang memicu aturan pembuatan.

    master

    Build Context Directory

    Direktori Dockerfile. Direktori yang ditentukan adalah direktori relatif, dan direktori root cabang kode berfungsi sebagai direktori induk. Dalam contoh ini, direktori Dockerfile adalah /Dockerfile. Masukkan /.

    /

    Dockerfile Filename

    Nama Dockerfile. Nilai default: Dockerfile. Misalnya, jika jalur Dockerfile adalah /Dockerfile, tentukan Dockerfile sebagai nilai parameter ini.

    Dockerfile

    Image Tag

    Tag gambar yang akan dibangun.

    V1.0.0

  4. Klik Confirm.

  5. Di bagian Build Rules, temukan aturan yang Anda buat dan klik Build di kolom Actions yang sesuai dengan aturan tersebut.

    Setelah Anda memulai pembuatan, catatan pembuatan dihasilkan di bagian Build Log. Ketika status catatan pembuatan menjadi Successful, gambar telah dibangun.

Hasil

Periksa apakah gambar telah dibangun

Di panel navigasi kiri halaman manajemen instance Container Registry Personal Edition, pilih Repository > Repositories. Klik nama repositori atau klik Manage di kolom Actions yang sesuai dengan repositori. Di panel navigasi kiri halaman detail repositori, klik Tags untuk melihat gambar yang Anda buat.

Jalankan gambar di Docker

Container Registry menyesuaikan proses pembuatan instance Personal Edition mulai 9 September 2024. Untuk informasi lebih lanjut, lihat Batasan pada Instance Personal Edition Baru. Anda dapat memilih metode push dan pull gambar berdasarkan versi instance Container Registry Personal Edition Anda.

Instance Personal Edition versi baru

  1. Jalankan perintah berikut di Docker dan gunakan kata sandi yang Anda atur saat menyiapkan lingkungan dan sumber daya untuk masuk ke Alibaba Cloud Docker Registry. Ganti acr_e2******@test.aliyunid.com dalam perintah dengan nama lengkap akun Alibaba Cloud Anda. Ganti cn-hangzhou dengan wilayah tempat instance Personal Edition Anda berada. Ganti crpi-xxxx dengan ID instance Personal Edition Anda. Masuk ke konsol Container Registry dan klik kartu instance Personal Edition. Pada halaman Overview, klik tab Instance Information untuk mendapatkan ID instance Personal Edition.

    docker login --username=acr_e2******@test.aliyunid.com crpi-xxxx.cn-hangzhou.personal.cr.aliyuncs.com
  2. Jalankan perintah berikut untuk menarik gambar:

    docker pull crpi-xxxx.cn-hangzhou.personal.cr.aliyuncs.com/test23432/test:V1.0.0
  3. Jalankan perintah berikut untuk melihat gambar Docker:

    docker images
  4. Jalankan perintah berikut untuk menjalankan gambar:

    docker run -ti crpi-xxxx.cn-hangzhou.personal.cr.aliyuncs.com/test23432/test:V1.0.0
    Hello World!

Instance Personal Edition versi lama

  1. Jalankan perintah berikut di Docker dan gunakan kata sandi yang Anda atur saat menyiapkan lingkungan dan sumber daya untuk masuk ke Alibaba Cloud Docker Registry. Ganti acr_e2******@test.aliyunid.com dalam perintah dengan nama lengkap akun Alibaba Cloud Anda. Ganti cn-hangzhou dengan wilayah tempat instance Personal Edition Anda berada.

    docker login --username=acr_e2******@test.aliyunid.com registry.cn-hangzhou.cr.aliyuncs.com
  2. Jalankan perintah berikut untuk menarik gambar. Ganti cn-hangzhou dalam perintah dengan wilayah tempat instance Personal Edition Anda berada. Ganti test23432 dengan namespace yang Anda gunakan. Ganti test:V1.0.0 dengan nama repositori dan tag gambar yang Anda gunakan.

    docker pull registry.cn-hangzhou.cr.aliyuncs.com/test23432/test:V1.0.0
  3. Jalankan perintah berikut untuk melihat gambar Docker:

    docker images
  4. Jalankan perintah berikut untuk menjalankan gambar. Ganti cn-hangzhou dalam perintah dengan wilayah tempat instance Personal Edition Anda berada. Ganti test23432 dengan namespace yang Anda gunakan. Ganti test:V1.0.0 dengan nama repositori dan tag gambar yang Anda gunakan.

    docker run -ti registry.cn-hangzhou.cr.aliyuncs.com/test23432/test:V1.0.0
    Hello World!