Halaman ini menjelaskan cara membuat file konfigurasi build yang dapat Anda gunakan untuk memulai build di Cloud Build.
File konfigurasi build menentukan kolom yang diperlukan agar Cloud Build dapat menjalankan tugas Anda. Anda memerlukan file konfigurasi build
jika memulai build menggunakan alat command line gcloudatau pemicu build. Anda dapat menulis file konfigurasi build menggunakan sintaksis YAML atau JSON.
Sebelum memulai
Baca Ringkasan Konfigurasi Build untuk mempelajari kolom yang dapat Anda sertakan dalam file konfigurasi build.
Membuat konfigurasi build
Langkah-langkah berikut menjelaskan cara membuat file konfigurasi build dasar. Setiap kolom dalam file konfigurasi build menentukan bagian dari tugas yang ingin Anda lakukan. Satu-satunya kolom yang wajib ada dalam file konfigurasi build adalah kolom name untuk sebuah langkah. Semua kolom lainnya bersifat opsional.
YAML
Buat file konfigurasi build. Di direktori utama project Anda, buat file bernama
cloudbuild.yaml. Ini adalah file konfigurasi Cloud Build Anda.Tambahkan kolom langkah. Bagian
stepsdalam file konfigurasi build berisi langkah-langkah build yang ingin Anda jalankan oleh Cloud Build.steps:Tambahkan langkah pertama. Di bagian
steps:, tambahkan kolomnamedan arahkan ke image container untuk menjalankan tugas Anda. Cloud Build dan komunitas developer-nya menyediakan beberapa image container dengan alat dan bahasa umum yang terinstal. Anda dapat menggunakan salah satu image ini (juga disebut Cloud Builder) atau image yang tersedia secara publik dalam langkah build. Untuk mengetahui informasi tentang berbagai jenis image container yang dapat Anda gunakan dalam langkah build, lihat Cloud Builder.Cuplikan berikut menunjukkan langkah build dengan builder
dockergcr.io/cloud-builders/docker, yang merupakan image container yang menjalankan Docker.steps: - name: 'gcr.io/cloud-builders/docker'Tambahkan argumen langkah. Kolom
argsdari sebuah langkah mengambil daftar argumen dan meneruskannya ke builder yang direferensikan oleh kolomname. Jika builder di kolomnamememiliki titik entri,argsdalam daftar akan digunakan untuk mengakses titik entri tersebut. Jika builder di kolomnametidak memiliki titik entri, elemen pertama diargsakan digunakan sebagai titik entri.Dalam contoh berikut:
buildadalah titik entri ke cloud builder Docker.-tadalah tag Docker.us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-imageadalah nama image yang akan dibangun di Artifact Registry. Langkah build menggunakan penggantian default untuk project ID, sehingga nilai ini otomatis diganti pada waktu build..adalah lokasi kode sumber, yang menunjukkan bahwa kode sumber berada di direktori kerja saat ini.steps: - name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', 'us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-image', '.']
Tambahkan langkah lainnya. Anda dapat menambahkan langkah build dalam jumlah berapa pun ke file konfigurasi build dengan menyertakan kolom
nametambahan dan mengarahkannya ke cloud builder.Cuplikan berikut menyertakan dua langkah lagi ke file konfigurasi build:
- langkah build Docker untuk memanggil perintah
docker pushguna mengirim build image pada langkah sebelumnya ke Artifact Registry. langkah build untuk perintah Google Cloud SDK dengan
gcloudtitik entri yang ditentukan, yang membuat instance Compute Engine dari image container di Artifact Registry. Kolomenvdisertakan untuk menentukan zona dan region Compute Engine.- name: 'gcr.io/cloud-builders/docker' args: ['push', 'us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-image'] - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' entrypoint: 'gcloud' args: ['compute', 'instances', 'create-with-container', 'my-vm-name', '--container-image', 'us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-image'] env: - 'CLOUDSDK_COMPUTE_REGION=us-central1' - 'CLOUDSDK_COMPUTE_ZONE=us-central1-a'
- langkah build Docker untuk memanggil perintah
Sertakan kolom konfigurasi build tambahan. Anda dapat mengonfigurasi build lebih lanjut dengan menyertakan kolom seperti
machineType,tags, atautimeout. Untuk mengetahui daftar lengkap kolom yang dapat Anda sertakan dalam file konfigurasi build, lihat Ringkasan Konfigurasi Build.Dalam contoh berikut, langkah build
gcr.io/google.com/cloudsdktool/cloud-sdkakan mengalami error setelah 240 detik.- name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' entrypoint: 'gcloud' timeout: 240s args: ['compute', 'instances', 'create-with-container', 'my-vm-name', '--container-image', 'us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-image'] env: - 'CLOUDSDK_COMPUTE_REGION=us-central1' - 'CLOUDSDK_COMPUTE_ZONE=us-central1-a'Lihat cuplikan berikut untuk contoh lengkap file konfigurasi build dasar:
Dalam contoh ini, image container disimpan di Artifact Registry. Jika build Anda menghasilkan artefak non-container, Anda dapat menyimpannya di Cloud Storage menggunakan kolom
artifacts. Untuk mengetahui petunjuk cara melakukannya, lihat Menyimpan Image dan Artefak.
JSON
Buat file konfigurasi build. Di direktori utama project Anda, buat file bernama
cloudbuild.json. Ini adalah file konfigurasi Cloud Build Anda.Tambahkan kolom langkah. Bagian
stepsdalam file konfigurasi build berisi langkah-langkah build yang ingin Anda jalankan oleh Cloud Build.{ "steps": }Tambahkan langkah pertama. Di bagian
steps:, tambahkan kolomnamedan arahkan ke image container untuk menjalankan tugas Anda. Cloud Build dan komunitas developer-nya menyediakan beberapa image container dengan alat dan bahasa umum yang terinstal. Anda dapat menggunakan salah satu image ini (juga disebut Cloud Builder) atau image yang tersedia secara publik dalam langkah build. Untuk mengetahui informasi tentang berbagai jenis image container yang dapat Anda gunakan dalam langkah build, lihat Cloud Builder.Cuplikan berikut menunjukkan langkah build dengan builder
dockergcr.io/cloud-builders/docker, yang merupakan image container yang menjalankan Docker.{ "steps": [ { "name": "gcr.io/cloud-builders/docker" } ] }Tambahkan argumen langkah. Kolom
argsdari sebuah langkah mengambil daftar argumen dan meneruskannya ke builder yang direferensikan oleh kolomname. Jika builder di kolomnamememiliki titik entri,argsdalam daftar akan digunakan untuk mengakses titik entri tersebut. Jika builder di kolomnametidak memiliki titik entri, elemen pertama diargsakan digunakan sebagai titik entri.Dalam contoh berikut:
buildadalah titik entri ke cloud builder Docker.-tadalah tag Docker.us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-imageadalah nama image yang akan dibangun di Artifact Registry. Langkah build menggunakan penggantian default untuk project ID, sehingga nilai ini otomatis diganti pada waktu build..adalah lokasi kode sumber, yang menunjukkan bahwa kode sumber berada di direktori kerja saat ini.{ "steps": [ { "name": "gcr.io/cloud-builders/docker", "args": [ "build", "-t", "us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/myimage", "." ] } ] }
Tambahkan langkah lainnya. Anda dapat menambahkan langkah build dalam jumlah berapa pun ke file konfigurasi build dengan menyertakan kolom
nametambahan dan mengarahkannya ke cloud builder.Cuplikan berikut menyertakan dua langkah lagi ke file konfigurasi build:
- langkah build Docker untuk memanggil perintah
docker pushguna mengirim build image pada langkah sebelumnya ke Artifact Registry. langkah build untuk perintah Google Cloud SDK dengan
gcloudtitik entri yang ditentukan, yang membuat instance Compute Engine dari image container di Artifact Registry. Kolomenvdisertakan untuk menentukan zona dan region Compute Engine.{ "name": "gcr.io/cloud-builders/docker", "args": [ "push", "us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/myimage" ] }, { "name": "gcr.io/google.com/cloudsdktool/cloud-sdk", "entrypoint": "gcloud", "args": [ "compute", "instances", "create-with-container", "my-vm-name", "--container-image", "us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/myimage" ], "env": [ "CLOUDSDK_COMPUTE_REGION=us-central1", "CLOUDSDK_COMPUTE_ZONE=us-central1-a" ] }
- langkah build Docker untuk memanggil perintah
Sertakan kolom konfigurasi build tambahan. Anda dapat mengonfigurasi build lebih lanjut dengan menyertakan kolom seperti
machineType,tags, atautimeout. Untuk mengetahui daftar lengkap kolom yang dapat Anda sertakan dalam file konfigurasi build, lihat Ringkasan Konfigurasi Build.Dalam contoh berikut, langkah build
gcr.io/google.com/cloudsdktool/cloud-sdkakan mengalami error setelah 240 detik.{ "name": "gcr.io/google.com/cloudsdktool/cloud-sdk", "entrypoint": "gcloud", "timeout": "240s", "args": [ "compute", "instances", "create-with-container", "my-vm-name", "--container-image", "us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/myimage" ], "env": [ "CLOUDSDK_COMPUTE_REGION=us-central1", "CLOUDSDK_COMPUTE_ZONE=us-central1-a" ] }Lihat cuplikan berikut untuk contoh lengkap file konfigurasi build dasar:
Dalam contoh ini, image container disimpan di Artifact Registry. Jika build Anda menghasilkan artefak non-container, Anda dapat menyimpannya di Cloud Storage menggunakan kolom
artifacts. Untuk mengetahui petunjuk cara melakukannya, lihat Menyimpan Image dan Artefak.
Langkah berikutnya
- Pelajari cara menjalankan build secara manual dan menggunakan pemicu menggunakan file konfigurasi build.
- Pelajari cara menulis konfigurasi build untuk menyertakan dependensi, serta membangun, menguji, dan men-deploy artefak.