Halaman ini menjelaskan cara menggunakan Cloud Build untuk mem-build, menguji, dan menyimpan aplikasi berbasis Java dalam container, mengupload image container ke Artifact Registry, serta membuat asal-usul build.
Sebelum memulai
- Memahami cara membuat aplikasi berbasis Java.
- Siapkan project Java Anda, termasuk
Dockerfile
. - Memiliki repositori Docker di Artifact Registry, atau membuat repositori baru.
- Pahami cara menulis file konfigurasi Cloud Build.
- Untuk menjalankan perintah
gcloud
di halaman ini, instal Google Cloud CLI.
Menggunakan gambar maven
atau gradle
Anda dapat mengonfigurasi Cloud Build untuk mem-build aplikasi Java menggunakan image maven
atau image gradle
dari Docker Hub.
maven
Untuk menjalankan tugas dalam image maven
, tambahkan langkah ke konfigurasi build dengan kolom berikut:
name
: Tetapkan nilai kolom ini kemaven
ataumaven:<tag>
, dengan tag mewakili versi. Jika Anda tidak menentukan tag image, Cloud Build akan menggunakan imagelatest
secara default.entrypoint
: Menetapkan kolom ini akan mengganti titik entri default gambar yang dirujuk diname
. Tetapkan nilai kolom ini kemvn
untuk memanggilmvn
sebagai titik entri langkah build dan menjalankan perintahmvn
.args
: Kolomargs
dari langkah build mengambil daftar argumen dan meneruskannya ke image yang dirujuk oleh kolomname
.
Langkah build berikut menentukan entrypoint
untuk image maven
yang diberi tag sebagai 3.3-jdk-8
dan mencetak versi alat build:
steps:
- name: maven:3.3-jdk-8
entrypoint: mvn
args: ['--version']
gradle
Untuk menjalankan tugas dalam image gradle
, tambahkan langkah ke konfigurasi build dengan kolom berikut:
name
: Tetapkan nilai kolom ini kegradle
ataugradle:<tag>
, dengan tag mewakili versi. Jika Anda tidak menentukan tag image, Cloud Build akan menggunakan imagelatest
secara default.entrypoint
: Menetapkan kolom ini akan mengganti titik entri default gambar yang dirujuk diname
. Tetapkan nilai kolom ini kegradle
untuk memanggilgradle
sebagai titik entri langkah build dan menjalankan perintahgradle
.args
: Kolomargs
dari langkah build mengambil daftar argumen dan meneruskannya ke image yang dirujuk oleh kolomname
.
Langkah build berikut menentukan entrypoint
untuk image gradle
yang diberi tag sebagai 5.6.2-jdk8
dan mencetak versi alat build:
steps:
- name: gradle:5.6.2-jdk8
entrypoint: gradle
args: ['--version']
Mengonfigurasi build Java
Di direktori utama project, buat file konfigurasi build bernama
cloudbuild.yaml
.Menjalankan pengujian:
maven
dangradle
menyediakanmaven test
dangradle test
, yang mendownload dependensi, mem-build aplikasi, dan menjalankan pengujian apa pun yang ditentukan dalam kode sumber Anda. Kolomargs
dari langkah build mengambil daftar argumen dan meneruskannya ke gambar yang direferensikan oleh kolomname
.Dalam file konfigurasi build, tambahkan
test
ke kolomargs
untuk memanggiltest
dalammaven
dangradle
:maven
steps: - name: maven:3.3-jdk-8 entrypoint: mvn args: ['test']
gradle
steps: - name: gradle:5.6.2-jdk8 entrypoint: gradle args: ['test']
Aplikasi paket: Untuk memaketkan aplikasi ke dalam file JAR untuk image
maven
, tentukan perintahpackage
di kolomargs
. Perintahpackage
mem-build file JAR di/workspace/target/
.Untuk memaketkan aplikasi ke dalam file JAR untuk image
gradle
, tentukan perintahassemble
di kolomargs
. Perintahassemble
mem-build file JAR diworkspace/build/libs
.Langkah build berikut mengemas aplikasi Java Anda:
maven
steps: - name: maven:3.3-jdk-8 entrypoint: mvn args: ['package','-Dmaven.test.skip=true']
gradle
steps: - name: gradle:5.6.2-jdk8 entrypoint: gradle args: ['assemble']
Membuat container aplikasi: Cloud Build menyediakan image Docker bawaan yang dapat Anda gunakan untuk membuat container aplikasi Java. Untuk mengemas aplikasi Java, dalam file konfigurasi build:
- Tambahkan kolom
name
dan tentukan image Docker bawaan digcr.io/cloud-builders/docker
. - Tambahkan kolom
args
dan tentukan argumenbuild
, termasuk nama image container yang akan di-build, dan jalur ke artefak build Anda. - Tambahkan kolom
images
untuk mengirim image container yang telah di-build ke Artifact Registry. Opsional: Tambahkan
requestedVerifyOption: VERIFIED
dalam kolomoptions
di file konfigurasi build untuk mengaktifkan pembuatan provenance Supply chain Levels for Software Artifacts (SLSA).
Langkah build berikut akan menempatkan aplikasi Anda ke dalam container, mengirim image container ke Artifact Registry, dan membuat informasi asal build:
maven
steps: - name: gcr.io/cloud-builders/docker args: ['build', '-t', 'location-docker.pkg.dev/project-id/repository/image', '--build-arg=JAR_FILE=target/build-artifact', '.'] images: ['location-docker.pkg.dev/project-id/repository/image']
gradle
steps: - name: gcr.io/cloud-builders/docker args: ['build', '-t', 'location-docker.pkg.dev/project-id/repository/image', '--build-arg=JAR_FILE=build/libs/build-artifact', '.'] images: ['location-docker.pkg.dev/project-id/repository/image']
Dengan keterangan:
- location: lokasi regional atau multi-regional untuk repositori Anda.
- project-id: ID project Google Cloud Anda.
- repository: nama Artifact Registry repositori Anda.
- image: nama image container Anda.
- build-artifact: nama file JAR yang dibuat dari langkah build.
- Tambahkan kolom
Mulai build: Setelah file konfigurasi build siap, mulai build dengan memasukkan perintah berikut di terminal:
gcloud builds submit --region=REGION --config config-file-path source-directory
Dengan keterangan:
- config-file-path: jalur ke file konfigurasi build Anda. Dalam contoh ini,
file konfigurasi build diberi nama
cloudbuild.yaml
. - source-directory: jalur atau URL ke kode sumber Anda.
REGION
: salah satu region build yang didukung.
Jika Anda tidak menentukan config-file-path dan source-directory dalam perintah
gcloud builds submit
, Cloud Build mengasumsikan bahwa file konfigurasi dan kode sumber berada di direktori kerja saat ini.Setelah build selesai, Anda dapat melihat detail repositori di Artifact Registry.
Anda juga dapat melihat metadata asal build dan memvalidasi asal.
- config-file-path: jalur ke file konfigurasi build Anda. Dalam contoh ini,
file konfigurasi build diberi nama
Contoh kode
Berikut adalah beberapa contoh repositori yang dapat Anda gunakan untuk mem-build aplikasi Java, yang masing-masing berisi aplikasi contoh dan file konfigurasi build untuk mem-build dan menguji aplikasi tersebut:
- maven-example: Aplikasi Java dan contoh file konfigurasi build untuk mem-build dan menguji
aplikasi dengan
mvn
. - gradle-example: Aplikasi Java dan contoh file konfigurasi build untuk mem-build dan menguji
aplikasi dengan
gradle
.
Langkah selanjutnya
- Pelajari cara melihat hasil build.
- Pelajari cara menjaga keamanan build.
- Pelajari cara mem-build aplikasi Java mandiri.
- Pelajari cara men-deploy aplikasi di Cloud Run.
- Pelajari cara men-deploy aplikasi di GKE.
- Pelajari cara memecahkan masalah error build.