All Products
Search
Document Center

Container Registry:Buat gambar aplikasi Java dengan Dockerfile

Last Updated:Jun 16, 2026

Multi-stage build di Alibaba Cloud Container Registry (ACR) menghasilkan gambar aplikasi Java yang aman dan ringkas dengan waktu pembuatan lebih cepat.

Prasyarat

Informasi latar belakang

Masalah Umum dalam Pembuatan Gambar

Membuat gambar dari Dockerfile dapat menghadirkan beberapa tantangan:

  • Dockerfile sulit ditulis

    Pengembang mungkin tidak terbiasa menulis Dockerfile untuk membuat gambar aplikasi.

  • Gambar menjadi membengkak

    Menyertakan kompilasi, pengujian, dan pengemasan dalam satu Dockerfile menambahkan layer gambar yang tidak perlu, sehingga menghasilkan hierarki kompleks dan ukuran file gambar besar.

  • Risiko kebocoran kode sumber

    Kode sumber dapat secara tidak sengaja disertakan dalam gambar akhir, menciptakan risiko keamanan.

Manfaat Multi-stage Build

Untuk bahasa terkompilasi seperti Java, menggunakan multi-stage build dalam Dockerfile memberikan manfaat berikut:

  • Keamanan gambar meningkat

    Tahap pertama menggunakan base image waktu kompilasi untuk mengunduh dependensi, mengompilasi, menguji, dan mengemas aplikasi. Tahap kedua menggunakan base image waktu eksekusi yang ringkas dan hanya menyalin artefak terkompilasi dari tahap pertama. Gambar akhir tidak berisi kode sumber.

  • Layer dan ukuran gambar dioptimalkan

    Gambar akhir hanya berisi base image dan artefak terkompilasi. Hal ini menghasilkan lebih sedikit layer gambar dan ukuran file lebih kecil.

  • Kecepatan pembuatan lebih cepat

    Tool pembuatan seperti Docker dan BuildKit dapat menjalankan beberapa tahap pembuatan secara paralel untuk mengurangi waktu pembuatan keseluruhan.

Langkah 1: Bind repositori kode sumber

Di Konsol Alibaba Cloud Container Registry, bind repositori kode Anda yang di-host. Contoh ini menggunakan repositori GitHub.

  1. Login ke Konsol Container Registry.

  2. Di bilah navigasi atas, pilih Wilayah.

  3. Pada halaman Instances, klik instans Edisi Personal yang ingin Anda kelola.

  4. Di panel navigasi kiri, pilih Repository > Code Source.

  5. Pada baris GitHub, klik Bind Account di kolom Actions. Di kotak dialog yang muncul, klik Go to the source code repository to bind account untuk membuka GitHub.

  6. Di halaman otorisasi, klik Authorize AliyunDeveloper. Setelah Anda kembali ke halaman Code Source, status GitHub akan ditampilkan sebagai Bound, yang menunjukkan binding berhasil.

Langkah 2: Buat repositori

  1. Login ke Konsol Container Registry.

  2. Di bilah navigasi atas, pilih Wilayah.

  3. Pada halaman Instances, klik instans Edisi Personal yang ingin Anda kelola.

  4. Di panel navigasi kiri, pilih Repository > Repositories, lalu klik Create Repository.

  5. Konfigurasikan informasi repositori.

    Parameter

    Deskripsi

    Contoh

    Region

    Wilayah tempat repositori berada.

    China (Hangzhou)

    Namespace

    Namespace untuk repositori.

    test23432

    Repository Name

    Masukkan nama untuk repositori.

    test

    Repository Type

    Jenis repositori dapat berupa Public atau Private. Anda harus login untuk mendorong gambar terlepas dari jenis repositorinya. Untuk melindungi data Anda, gunakan repositori pribadi.

    • Public: Siapa pun dapat menarik gambar tanpa otentikasi.

    • Private: Diperlukan otentikasi untuk menarik gambar.

    Private

    Summary

    Deskripsi singkat.

    -

    Description

    Deskripsi detail. Markdown didukung.

    Gunakan Dockerfile yang dibuat dan layanan pembuatan gambar ACR untuk membangun, mengemas, dan menjalankan gambar.

  6. Klik Next dan atur sumber kode.

    Parameter

    Deskripsi

    Code Source

    Atur Code Source ke GitHub dan pilih repositori kode sumber yang telah di-bind.

    Build Settings

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

    • Automatically Build Images When Code Changes: Secara otomatis memicu pembuatan saat kode dikomit ke branch.

    • Build with Servers Deployed Outside Chinese Mainland: Menjalankan pembuatan di pusat data di luar Tiongkok daratan dan mendorong gambar hasil ke wilayah yang ditentukan.

    • Build Without Cache: Memaksa pengambilan ulang gambar dependensi dasar untuk setiap pembuatan, yang dapat meningkatkan waktu pembuatan.

  7. Klik Create Repository.

    Setelah repositori dibuat, halaman detail repositori menampilkan informasi dasarnya.

  8. Di panel navigasi kiri, klik ikon 23030201 di sebelah kiri nama repositori. Di halaman Repositories, Anda dapat melihat repositori baru Anda. Status Status bernilai Normal menunjukkan bahwa repositori berhasil dibuat.

Langkah 3: Lakukan pembuatan

  1. Di panel navigasi kiri, pilih Repository > Repositories. Klik nama repositori Anda, atau klik Manage di kolom Actions repositori.

  2. Di panel navigasi kiri, klik Build. Di bagian Build Rules, klik Add Build Rule.

  3. Konfigurasikan aturan pembuatan.

    Parameter

    Deskripsi

    Contoh

    Type

    Event yang memicu aturan pembuatan saat kode didorong ke repositori. Nilai yang valid adalah Branch dan Tag.

    Branch

    Branch/Tag

    Branch kode yang akan dibuat.

    master

    Build Context Directory

    Direktori tempat Dockerfile berada. Ini adalah path relatif dari root branch kode. Dalam tutorial ini, path lengkapnya adalah /Dockerfile, jadi masukkan / di sini.

    /

    Dockerfile Filename

    Nama Dockerfile. Nilai default-nya adalah Dockerfile. Misalnya, jika path lengkapnya adalah /Dockerfile, masukkan Dockerfile.

    Dockerfile

    Image Version

    Tag untuk versi gambar.

    V1.0.0

  4. Klik OK untuk kembali ke halaman Build.

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

    Di bagian Build Log, status pembuatan Success menunjukkan bahwa pembuatan telah selesai.

Verifikasi hasil

Lihat gambar yang dibuat

Di panel navigasi kiri, pilih Repository > Repositories. Klik nama repositori Anda, atau klik Manage di kolom Actions. Di panel navigasi kiri halaman detail repositori, klik Image Version untuk melihat gambar yang telah dibuat.

Jalankan gambar

Mulai 9 September 2024, format titik akhir registri untuk instans Edisi Personal baru akan berubah. Untuk informasi selengkapnya, lihat Catatan penggunaan untuk instans Edisi Personal baru. Pilih metode untuk mendorong dan menarik gambar berdasarkan versi instans Anda.

Instans Edisi Personal baru

  1. Jalankan perintah berikut di Docker untuk login ke Alibaba Cloud Docker Registry. Dalam perintah tersebut, ganti acr_e2******@test.aliyunid.com dengan nama Akun Alibaba Cloud Anda, cn-hangzhou dengan wilayah instans, dan crpi-xxxx dengan ID instans. Anda akan diminta memasukkan password. Untuk menemukan ID instans, login ke Konsol Alibaba Cloud Container Registry, buka Personal Edition Anda, lalu temukan Instance ID di halaman Overview pada tab Instance .

    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 Anda.

    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!

Instans Edisi Personal lama

  1. Jalankan perintah berikut di Docker untuk login ke Alibaba Cloud Docker Registry. Dalam perintah tersebut, ganti acr_e2******@test.aliyunid.com dengan nama Akun Alibaba Cloud Anda dan cn-hangzhou dengan wilayah instans Anda. Anda akan diminta memasukkan password.

    docker login --username=acr_e2******@test.aliyunid.com registry.cn-hangzhou.cr.aliyuncs.com
  2. Jalankan perintah berikut untuk menarik gambar. Dalam perintah tersebut, ganti cn-hangzhou dengan wilayah instans Anda, test23432 dengan namespace Anda, dan test:V1.0.0 dengan nama repositori dan tag gambar Anda.

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

    docker images
  4. Jalankan perintah berikut untuk menjalankan gambar. Ganti cn-hangzhou dengan wilayah instans Edisi Personal Anda. Ganti test23432 dengan namespace aktual Anda. Ganti test:V1.0.0 dengan nama repositori dan tag gambar aktual Anda.

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