Halaman ini menjelaskan cara menggunakan Cloud Build untuk mem-build, menguji, dan menyimpan aplikasi berbasis Java dalam container, mengupload image container ke Artifact Registry, dan membuat asal 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
gclouddi 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 kemavenataumaven:<tag>, dengan tag mewakili versi. Jika Anda tidak menentukan tag image, Cloud Build akan menggunakan imagelatestsecara default.entrypoint: Menetapkan kolom ini akan mengganti titik entri default gambar yang dirujuk diname. Tetapkan nilai kolom ini kemvnuntuk memanggilmvnsebagai titik entri langkah build dan menjalankan perintahmvn.args: Kolomargsdari 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 kegradleataugradle:<tag>, dengan tag mewakili versi. Jika Anda tidak menentukan tag image, Cloud Build akan menggunakan imagelatestsecara default.entrypoint: Menetapkan kolom ini akan mengganti titik entri default gambar yang dirujuk diname. Tetapkan nilai kolom ini kegradleuntuk memanggilgradlesebagai titik entri langkah build dan menjalankan perintahgradle.args: Kolomargsdari 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:
mavendangradlemenyediakanmaven testdangradle test, yang mendownload dependensi, mem-build aplikasi, dan menjalankan pengujian apa pun yang ditentukan dalam kode sumber Anda. Kolomargsdari langkah build mengambil daftar argumen dan meneruskannya ke gambar yang direferensikan oleh kolomname.Dalam file konfigurasi build, tambahkan
testke kolomargsuntuk memanggiltestdalammavendangradle: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 perintahpackagedi kolomargs. Perintahpackagemem-build file JAR di/workspace/target/.Untuk memaketkan aplikasi ke dalam file JAR untuk image
gradle, tentukan perintahassembledi kolomargs. Perintahassemblemem-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 membuat penampung aplikasi Java, dalam file konfigurasi build:
- Tambahkan kolom
namedan tentukan image Docker bawaan digcr.io/cloud-builders/docker. - Tambahkan kolom
argsdan tentukan argumenbuild, termasuk nama image container yang akan di-build, dan jalur ke artefak build Anda. - Tambahkan kolom
imagesuntuk mengirim image container yang telah di-build ke Artifact Registry. Opsional: Tambahkan
requestedVerifyOption: VERIFIEDdalam kolomoptionsdi 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-directoryDengan 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 akan 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 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 berikutnya
- 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.