Halaman ini menjelaskan cara menggunakan builder yang dikontribusikan oleh komunitas dan builder kustom di Cloud Build. Komunitas developer Cloud Build menyediakan builder open source yang dapat Anda gunakan untuk menjalankan tugas. Jika tugas yang ingin Anda lakukan memerlukan kemampuan yang tidak disediakan oleh image yang ada, Anda dapat membuat image kustom sendiri dan menggunakannya dalam langkah build. Untuk mempelajari berbagai jenis builder, lihat Cloud Builder.
Jika Anda baru menggunakan Cloud Build, baca panduan memulai dan Ringkasan konfigurasi build terlebih dahulu.
Menggunakan builder yang dikontribusikan oleh komunitas
Image yang telah di-build sebelumnya tidak tersedia untuk builder yang dikontribusikan komunitas; untuk menggunakan builder ini dalam file konfigurasi Cloud Build, Anda harus mem-build image terlebih dahulu dan mengirimkannya ke Artifact Registry di project Anda.
Untuk menggunakan builder yang dikontribusikan oleh komunitas:
Buat dan kirim builder:
Buka direktori root project Anda.
Clone repositori cloud-builders-community:
git clone https://github.com/GoogleCloudPlatform/cloud-builders-community.git
Buka image builder yang ingin Anda gunakan, dengan builder-name adalah direktori yang berisi builder:
cd cloud-builders-community/builder-name
Kirimkan builder ke project Anda:
gcloud builds submit .
Kembali ke direktori root project Anda:
cd ../..
Hapus repositori dari direktori root Anda:
rm -rf cloud-builders-community/
Dalam file konfigurasi Cloud Build, gunakan builder dalam langkah build:
YAML
steps: - name: 'gcr.io/project-id/builder-name' args: ['arg1', 'arg2', ...] ...
JSON
{ "steps": [ { "name": "gcr.io/project-id/builder-name", "args": [ "arg1", "arg2", ... ] ... } ] }
Gunakan file konfigurasi build untuk memulai build secara manual atau build menggunakan pemicu.
Untuk contoh penggunaan builder yang dikontribusikan oleh komunitas, lihat Men-deploy ke Firebase dan Membangun image VM menggunakan Packer.
Membuat builder kustom
Jika tugas yang ingin Anda lakukan memerlukan kemampuan yang tidak disediakan oleh image publik, builder yang didukung, atau builder yang dikontribusikan komunitas, Anda dapat membuat image sendiri dan menggunakannya dalam langkah build.
Beberapa contoh kapan Anda mungkin ingin menggunakan image builder kustom adalah:
- Mendownload kode sumber atau paket dari lokasi eksternal.
- Menggunakan rangkaian alat eksternal.
- Meng-cache library yang diperlukan.
- Membangun sumber terlebih dahulu (dengan Cloud Build hanya bertanggung jawab untuk berpotensi mengemas build ke dalam image).
Seperti builder lainnya, builder kustom berjalan dengan sumber yang di-mount di
/workspace
, dan dijalankan dengan direktori kerja di /workspace
. File apa pun yang tersisa di /workspace
oleh langkah build tertentu tersedia untuk langkah build lainnya.
Builder kustom Anda dapat mengirim atau menarik dari repositori di
Artifact Registry (di-hosting di gcr.io/$PROJECT-NAME/
)
yang dapat diakses oleh akun layanan build Anda.
Langkah-langkah berikut menunjukkan cara membuat dan menggunakan builder kustom dengan contoh
Dockerfile
:
Buat image builder kustom:
Buat
Dockerfile
untuk builder kustom. Kode berikut menunjukkan contohDockerfile
:FROM alpine RUN apk add curl CMD curl https://httpbin.org/ip -s > myip.txt; echo "*** My IP is: $(cat myip.txt)"
Bangun dan kirim builder kustom ke Artifact Registry di project Anda, dengan mengganti nilai untuk project-id dan image-name:
gcloud builds submit --tag gcr.io/project-id/image-name
Gunakan image builder kustom di Cloud Build dengan menentukan builder di kolom
name
langkah build:YAML
steps: - name: 'gcr.io/project-id/image-name' id: Determine IP of this build worker
JSON
{ "steps": [ { "name": "gcr.io/project-id/image-name", "id": "Determine IP of this build worker" } ] }
Gunakan file konfigurasi build untuk memulai build secara manual atau build menggunakan pemicu.
Langkah berikutnya
- Pelajari cara menjalankan skrip bash dalam langkah-langkah build.
- Pelajari cara mengonfigurasi urutan langkah build.
- Pelajari cara menulis file konfigurasi build dasar.