Halaman ini menjelaskan cara menggunakan Cloud Build untuk membangun, menguji, dan membuat container aplikasi berbasis Java, mengupload image container ke Artifact Registry, dan membuat provenans build.
Sebelum memulai
- Pahami cara membuat aplikasi berbasis Java.
- Siapkan project Java Anda, termasuk
Dockerfile. - Memiliki repositori Docker di Artifact Registry, atau buat 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 membangun aplikasi Java menggunakan
image maven
atau image gradle
dari Docker Hub.
maven
Untuk menjalankan tugas di 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 menggantikan titik entri default gambar yang dirujuk dalamname. 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 3.3-jdk-8 dan mencetak versi alat build:
steps:
- name: maven:3.3-jdk-8
entrypoint: mvn
args: ['--version']
gradle
Untuk menjalankan tugas di 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 menggantikan titik entri default gambar yang dirujuk dalamname. 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 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 root project Anda, buat file konfigurasi build bernama
cloudbuild.yaml.Menjalankan pengujian:
mavendangradlemenyediakanmaven testdangradle test, yang mendownload dependensi, membangun aplikasi, dan menjalankan pengujian apa pun yang ditentukan dalam kode sumber Anda. Kolomargsdari langkah build mengambil daftar argumen dan meneruskannya ke image yang dirujuk 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']Paket aplikasi: Untuk mengemas aplikasi Anda ke dalam file JAR untuk image
maven, tentukan perintahpackagedi kolomargs. Perintahpackageakan membangun file JAR di/workspace/target/.Untuk mengemas aplikasi Anda ke dalam file JAR untuk image
gradle, tentukan perintahassembledi kolomargs. Perintahassemblemembangun 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']Memasukkan aplikasi ke dalam container: Cloud Build menyediakan image Docker yang telah dibuat sebelumnya yang dapat Anda gunakan untuk memasukkan aplikasi Java ke dalam container. Untuk memasukkan aplikasi Java ke dalam container, di file konfigurasi build Anda:
- Tambahkan kolom
namedan tentukan image Docker bawaan digcr.io/cloud-builders/docker. - Tambahkan kolom
argsdan tentukan argumenbuild, termasuk nama image container yang akan dibuat, dan jalur ke artefak build Anda. - Tambahkan kolom
imagesuntuk mengirim image container yang dibuat ke Artifact Registry. Opsional: Tambahkan
requestedVerifyOption: VERIFIEDdalam kolomoptionsdi file konfigurasi build untuk mengaktifkan pembuatan asal-usul Supply chain Levels for Software Artifacts (SLSA).
Langkah build berikut akan memasukkan aplikasi Anda ke dalam container, mengirim image container Anda 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:
- location: lokasi regional atau multi-regional untuk repositori Anda.
- project-id: ID Google Cloud project Anda.
- repository: nama repositori Artifact Registry Anda.
- image: nama image container Anda.
- build-artifact: nama file JAR yang dibuat dari langkah build Anda.
- 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:
- 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 wilayah 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 beberapa contoh repositori yang dapat Anda gunakan untuk membangun aplikasi Java, yang masing-masing berisi contoh aplikasi dan file konfigurasi build untuk membangun dan menguji aplikasi tersebut:
- maven-example: Aplikasi Java dan contoh file konfigurasi build untuk membangun 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 mengamankan build.
- Pelajari cara membangun aplikasi Java mandiri.
- Pelajari cara men-deploy aplikasi di Cloud Run.
- Pelajari cara men-deploy aplikasi di GKE.
- Pelajari cara memecahkan masalah error build.