Halaman ini menjelaskan cara menggunakan Cloud Build untuk membangun, menguji, membuat container, dan men-deploy aplikasi Go, serta cara menyimpan log pengujian di Cloud Storage.
Sebelum memulai
Petunjuk di halaman ini mengasumsikan bahwa Anda sudah memahami Go. Selain itu:
-
Enable the Cloud Build, Cloud Run, and Artifact Registry APIs.
- Untuk menjalankan perintah
gcloud
di halaman ini, instal Google Cloud CLI. - Siapkan project Go Anda.
- Jika ingin membuat aplikasi Go Anda dalam container menggunakan Cloud Build, Anda memerlukan
Dockerfile
beserta kode sumber Anda. - Jika Anda ingin menyimpan container yang di-build di Artifact Registry, buat repositori Docker di Artifact Registry.
- Jika Anda ingin menyimpan log pengujian di Cloud Storage, buat bucket di Cloud Storage.
Izin IAM yang diperlukan
Untuk menyimpan log pengujian di Logging, berikan peran Storage Object Creator (
roles/storage.objectCreator
) untuk bucket Cloud Storage ke akun layanan build Anda.Untuk menyimpan image yang dibuat di Artifact Registry, berikan peran Penulis Artifact Registry (
roles/artifactregistry.writer
) ke akun layanan build Anda.
Untuk mengetahui petunjuk cara memberikan peran ini, lihat Memberikan peran menggunakan halaman IAM.
Mengonfigurasi build Go
Image golang
publik dari Docker Hub mendukung pembangunan menggunakan modul Go.
Dengan menggunakan image ini sebagai langkah build dalam file konfigurasi Cloud Build, Anda dapat memanggil perintah go
dalam image. Argumen yang diteruskan ke langkah build ini diteruskan langsung ke alat golang
, sehingga Anda dapat menjalankan perintah go
apa pun di image ini.
Bagian ini membahas contoh file konfigurasi build untuk aplikasi Go. File ini memiliki langkah-langkah build untuk mem-build aplikasi, menambahkan pengujian unit, dan setelah pengujian lulus, untuk membuat container dan men-deploy aplikasi.
Untuk membangun aplikasi Go:
Di direktori root project Anda, buat file konfigurasi Cloud Build bernama
cloudbuild.yaml
.Build dan uji: Jika telah menentukan pengujian unit di aplikasi, Anda dapat mengonfigurasi Cloud Build untuk menjalankan pengujian dengan menambahkan kolom berikut dalam langkah build:
name
: Tetapkan nilai kolom ini kegolang
untuk menggunakan image golang dari Docker Hub untuk tugas Anda.entrypoint
: Tetapkan nilai kolom ini ke/bin/bash
. Hal ini memungkinkan Anda menjalankan perintah bash multi-baris langsung dari langkah build.args
: Kolomargs
dari langkah build mengambil daftar argumen dan meneruskannya ke image yang dirujuk oleh kolomname
. Pada contoh berikut, kolomargs
menggunakan argumen untuk:- Menjalankan pemformat log pengujian untuk mendownload output log pengujian.
- Mencetak output log.
- Menyimpan hasil pengujian di
sponge.log
. - Menampilkan hasil dalam
sponge.log
ke file XML JUNIT. Nama file XML JUNIT dibuat menggunakan versi singkat ID commit yang terkait dengan build Anda. Langkah build berikutnya akan menyimpan log dalam file ini ke Cloud Storage.
Mengemas aplikasi dalam container: Setelah menambahkan langkah build untuk memastikan bahwa pengujian telah lulus, Anda dapat membuat aplikasi. Cloud Build menyediakan image Docker yang telah dibuat sebelumnya yang dapat Anda gunakan untuk memasukkan aplikasi Go ke dalam container. Untuk membuat container aplikasi, tambahkan kolom berikut dalam langkah build:
name
: Tetapkan nilai kolom ini kegcr.io/cloud-builders/docker
untuk menggunakan image Docker bawaan untuk tugas Anda.args
: Tambahkan argumen untuk perintahdocker build
sebagai nilai untuk kolom ini.
Langkah build berikut membangun image
myimage
dan memberi tag dengan versi singkat ID commit Anda. Langkah build menggunakan penggantian untuk project ID, nama repositori, dan nilai SHA pendek, sehingga nilai-nilai ini diganti secara otomatis pada waktu build. Perhatikan bahwa Anda harus membuat atau memiliki repositori Docker yang ada di Artifact Registry untuk menyimpan image.Kirim container ke Artifact Registry: Anda dapat menyimpan container yang dibangun di Artifact Registry, yang merupakan layanan yang dapat Anda gunakan untuk menyimpan, mengelola, dan mengamankan artefak build. Google Cloud Untuk melakukannya, Anda harus memiliki repositori Docker yang sudah ada di Artifact Registry. Untuk mengonfigurasi Cloud Build guna menyimpan image di repositori Docker Artifact Registry, tambahkan langkah build dengan kolom berikut:
name
: Tetapkan nilai kolom ini kegcr.io/cloud-builders/docker
untuk menggunakan image builderdocker
resmi untuk tugas Anda.args
: Tambahkan argumen untuk perintahdocker push
sebagai nilai kolom ini. Untuk URL tujuan, masukkan repositori Docker Artifact Registry tempat Anda ingin menyimpan image.
Langkah build berikut akan mengirim image yang Anda buat pada langkah sebelumnya ke Artifact Registry:
Deploy container ke Cloud Run: Untuk men-deploy image di Cloud Run, tambahkan langkah build dengan kolom berikut:
name
: Tetapkan nilai kolom ini kegoogle/cloud-sdk
untuk menggunakan image gcloud CLI guna memanggil perintahgcloud
untuk men-deploy image di Cloud Run.args
: Tambahkan argumen untuk perintahgcloud run deploy
sebagai nilai kolom ini.
Langkah build berikut men-deploy image yang dibangun sebelumnya ke Cloud Run:
Menyimpan log pengujian ke Cloud Storage: Anda dapat mengonfigurasi Cloud Build untuk menyimpan log pengujian apa pun di Cloud Storage dengan menentukan lokasi bucket dan jalur yang ada ke log pengujian.
Langkah build berikut menyimpan log pengujian yang Anda simpan dalam file JUNIT XML ke bucket Cloud Storage:
Cuplikan berikut menunjukkan file konfigurasi build lengkap untuk langkah-langkah sebelumnya:
Mulai build menggunakan gcloud CLI atau pemicu build. Anda harus menentukan nama repositori Artifact Registry saat memulai build.
Untuk menentukan repositori Artifact Registry saat memulai build menggunakan gcloud CLI:
gcloud builds submit --region=us-west2 --config=cloudbuild.yaml \ --substitutions=_AR_REPO_NAME="AR_REPO_NAME"
Ganti
AR_REPO_NAME
dengan nama repositori Artifact Registry Anda.Untuk menentukan repositori Artifact Registry saat membangun dengan pemicu build, tentukan nama repositori Artifact Registry Anda di kolom Variabel penggantian saat membuat pemicu build.
Langkah berikutnya
- Pelajari cara melakukan deployment biru-hijau di Compute Engine.
- Pelajari cara membangun image container.
- Pelajari cara memecahkan masalah error build.