Halaman ini menjelaskan cara menggunakan Cloud Build untuk membangun, menguji, dan menyimpan aplikasi berbasis Java dalam container, mengupload image container ke Artifact Registry, membuat provenance build.
Sebelum memulai
- Kenali pembuatan 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
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.
Untuk menjalankan tugas di image maven
atau gradle
, tentukan URL image dan versi image yang diberi tag di kolom name
file konfigurasi build Anda. Jika Anda tidak menentukan tag gambar, Cloud Build akan menggunakan image latest
secara default. Cloud Build memulai image yang ditentukan dalam name
menggunakan titik entri default gambar. Untuk mengganti
titik entri default dan memanggil maven
atau gradle
sebagai titik entri, tentukan
mvn
atau gradle
di kolom entrypoint
.
File konfigurasi build berikut menentukan entrypoint
untuk image maven
atau
gradle
dan mencetak versi alat build:
pakar
steps:
- name: maven:3.3-jdk-8
entrypoint: mvn
args: ['--version']
gradle
steps:
- name: gradle:5.6.2-jdk8
entrypoint: gradle
args: ['--version']
Mengonfigurasi Java
build
Di direktori utama project, buat file konfigurasi build dengan nama
cloudbuild.yaml
.Jalankan 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
pada langkah build mengambil daftar argumen dan meneruskannya ke gambar yang dirujuk oleh kolomname
.Dalam file konfigurasi build Anda, tambahkan
test
ke kolomargs
untuk memanggiltest
dalammaven
dangradle
:pakar
steps: - name: maven:3.3-jdk-8 entrypoint: mvn args: ['test']
gradle
steps: - name: gradle:5.6.2-jdk8 entrypoint: gradle args: ['test']
Package application: Untuk memaketkan aplikasi Anda menjadi file JAR untuk image
maven
, tentukan perintahpackage
di kolomargs
. Perintahpackage
membuat file JAR di/workspace/target/
.Untuk mengemas aplikasi Anda ke dalam file JAR untuk image
gradle
, tentukan perintahassemble
di kolomargs
. Perintahassemble
membuat file JAR diworkspace/build/libs
.Langkah build berikut memaketkan aplikasi Java Anda:
pakar
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 dibangun sebelumnya yang dapat Anda gunakan untuk mem-build aplikasi Java dalam container. Untuk menyimpan aplikasi Java dalam container, di file konfigurasi build Anda:
- 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 dibangun ke Artifact Registry dan membuat informasi provenance build. Jika Anda tidak menggunakan kolomimages
, Cloud Build tidak akan mencatat informasi provenance. Misalnya, jika Anda menggunakan langkah builddocker push
untuk mengupload gambar ke Artifact Registry, build Anda tidak akan memiliki informasi provenance terkait.
Langkah build berikut memasukkan aplikasi Anda ke dalam container dan mengirim image container ke Artifact Registry, serta menghasilkan informasi provenance build.
pakar
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 Anda.
- Tambahkan kolom
Opsional: Mengaktifkan provenance untuk build regional
Jika Anda menggunakan build regional, tambahkan kolom
requestedVerifyOption
dioptions
pada file konfigurasi build Anda. Setel nilai keVERIFIED
untuk mengaktifkan pembuatan metadata provenance. Jika Anda tidak menambahkanrequestedVerifyOption: VERIFIED
, Cloud Build akan menghasilkan provenance untuk build global saja.options: requestedVerifyOption: VERIFIED
Mulai build: Setelah file konfigurasi build siap, mulai build dengan memasukkan perintah berikut di terminal Anda:
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 menganggap 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 provenance build dan memvalidasi provenance untuk membantu melindungi supply chain software Anda.
- 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 membangun dan menguji
aplikasi dengan
gradle
.
Langkah selanjutnya
- Pelajari cara melihat hasil build.
- Pelajari cara mengamankan build.
- Pelajari cara membuat aplikasi Java mandiri.
- Pelajari cara men-deploy aplikasi di Cloud Run.
- Pelajari cara men-deploy aplikasi di GKE.
- Pelajari cara memecahkan masalah error build.