Penyiapan manual deployment berkelanjutan menggunakan Cloud Build

Petunjuk berikut mengasumsikan bahwa Anda memiliki repositori git Dockerfile sebagai root-nya.

Untuk mengotomatiskan deployment dari Git dengan Cloud Build:

  1. Buat konfigurasi Cloud Build yang:

    • Membangun image container
    • Mengirim image ke Container Registry (Tidak digunakan lagi)
    • Men-deploy revisi baru ke layanan Cloud Run

    Untuk melakukannya, tambahkan file bernama cloudbuild.yaml di root repositori Anda dengan cara berikut:

     steps:
     # build the container image
     - name: 'gcr.io/cloud-builders/docker'
       args: ['build', '-t', 'gcr.io/$PROJECT_ID/[SERVICE-NAME]:$COMMIT_SHA', '.']
     # push the container image to Container Registry
     - name: 'gcr.io/cloud-builders/docker'
       args: ['push', 'gcr.io/$PROJECT_ID/[SERVICE-NAME]:$COMMIT_SHA']
     # Deploy container image to Cloud Run
     - name: 'gcr.io/cloud-builders/gcloud'
       args:
       - 'run'
       - 'deploy'
       - '[SERVICE-NAME]'
       - '--image'
       - 'gcr.io/$PROJECT_ID/[SERVICE-NAME]:$COMMIT_SHA'
       - '--region'
       - '[REGION]'
     images:
     - 'gcr.io/$PROJECT_ID/[SERVICE-NAME]:$COMMIT_SHA'
    

    Ganti

    • [SERVICE-NAME] dengan nama layanan Cloud Run.
    • [REGION] dengan region layanan Cloud Run yang Anda deploy.

    Penggunaan variabel substitusi $COMMIT_SHA diisi oleh Cloud Build saat dipicu dari repositori Git.

  2. Berikan peran Admin Cloud Run dan Pengguna Akun Layanan pada akun layanan Cloud Build:

    1. Buka halaman setelan Cloud Build di konsol Google Cloud:

      Buka halaman setelan Cloud Build

    2. Di panel izin akun Layanan, tetapkan status peran Admin Cloud Run ke Enable:

      Screenshot halaman izin akun Layanan

    3. Pilih BERIKAN AKSES KE SEMUA AKUN LAYANAN untuk memberikan peran Pengguna Akun Layanan di semua akun layanan pada project di halaman Anda.

  3. Klik Pemicu di panel navigasi sebelah kiri untuk membuka halaman Pemicu:

    Buka halaman Pemicu

    1. Klik Buat Pemicu.
    2. Di kolom Nama, masukkan nama pemicu Anda.
    3. Di bagian Peristiwa, pilih peristiwa repositori untuk memulai pemicu Anda.
    4. Di bagian Sumber, pilih repositori dan cabang atau nama tag yang akan memulai pemicu Anda. Untuk informasi selengkapnya tentang menentukan cabang yang akan otomatis di-build, lihat Membuat pemicu build.
    5. Di bagian File konfigurasi Cloud Build (yaml atau json), pilih File konfigurasi Cloud Build.
    6. Di kolom Lokasi file konfigurasi Cloud Build, ketik cloudbuild.yaml setelah /.
    7. Klik Buat untuk menyimpan pemicu build Anda.
  4. Selesai! Mulai sekarang, setiap kali Anda melakukan push ke repositori, build dan deployment ke layanan Cloud Run Anda akan otomatis dipanggil.

Deployment berkelanjutan dengan izin IAM minimal

Saat di-deploy dengan layanan Cloud Run, container dijalankan dengan identitas Akun Layanan Runtime di layanan Cloud Run. Karena Cloud Build dapat otomatis men-deploy container baru, Cloud Build harus dapat bertindak sebagaiAkun Layanan Runtime di layanan Cloud Run Anda.

Untuk memberikan akses terbatas pada Cloud Build guna men-deploy layanan Cloud Run:

UI Konsol

  1. Buka halaman akun Layanan di konsol Google Cloud:

    Buka halaman Service accounts

  2. Klik alamat email layanan Cloud Run dari akun Layanan Runtime Anda di Cloud Run (secara default, alamatnya adalah PROJECT_NUMBER-compute@developer.gserviceaccount.com).

  3. Klik tab Izin.

  4. Klik Berikan akses.

  5. Masukkan Akun Layanan Cloud Build (PROJECT_NUMBER@cloudbuild.gserviceaccount.com)

  6. Di menu dropdown Pilih peran, pilih peran Akun Layanan > Pengguna Akun Layanan.

  7. Klik Simpan.

Command line

Gunakan perintah gcloud iam service-accounts add-iam-policy-binding:

gcloud iam service-accounts add-iam-policy-binding \
  PROJECT_NUMBER-compute@developer.gserviceaccount.com \
  --member="serviceAccount:PROJECT_NUMBER@cloudbuild.gserviceaccount.com" \
  --role="roles/iam.serviceAccountUser"

Ganti PROJECT_NUMBER dengan ID numerik project Anda.

Jika Anda menggunakan Cloud Run dengan identitas layanan yang disesuaikan, ganti PROJECT_NUMBER-compute@developer.gserviceaccount.com dengan alamat akun layanan Anda.

Lihat Izin deployment untuk informasi selengkapnya.

Langkah Berikutnya