Membangun dan mengirim image Docker dengan Cloud Build

Pelajari cara mulai menggunakan Cloud Build dengan membangun image Docker dan mengirim image ke Artifact Registry. Artifact Registry menyediakan satu lokasi untuk mengelola paket pribadi dan image container Docker.

Pertama, Anda akan membangun image menggunakan Dockerfile, yang merupakan file konfigurasi Docker, lalu membangun image yang sama menggunakan file konfigurasi Cloud Build.


Untuk mengikuti panduan langkah demi langkah tugas ini langsung di Cloud Shell Editor, klik Pandu saya:

Pandu saya


Sebelum memulai

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Build, Compute Engine and Artifact Registry APIs.

    Enable the APIs

  5. Install the Google Cloud CLI.

  6. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  7. To initialize the gcloud CLI, run the following command:

    gcloud init
  8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  9. Make sure that billing is enabled for your Google Cloud project.

  10. Enable the Cloud Build, Compute Engine and Artifact Registry APIs.

    Enable the APIs

  11. Install the Google Cloud CLI.

  12. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  13. To initialize the gcloud CLI, run the following command:

    gcloud init
  14. Make sure that you have the following role or roles on the project: Artifact Registry Administrator, Cloud Build Editor, Logs Viewer, Service Account User, Service Usage Admin, Storage Bucket Viewer, Storage Object Creator

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Buka IAM
    2. Pilih project.
    3. Klik Berikan akses.
    4. Di kolom Akun utama baru, masukkan ID pengguna Anda. Biasanya berupa alamat email untuk Akun Google.

    5. Di daftar Pilih peran, pilih peran.
    6. Untuk memberikan peran tambahan, klik Tambahkan peran lain, lalu tambahkan setiap peran tambahan.
    7. Klik Simpan.
    8. Menyiapkan file sumber untuk membangun

      Anda akan memerlukan beberapa kode sumber contoh untuk dikemas ke dalam image container. Di bagian ini, Anda akan membuat skrip shell dan Dockerfile. Dockerfile adalah dokumen teks yang berisi petunjuk untuk Docker dalam membangun image.

      1. Buka jendela terminal.

      2. Buat direktori baru bernama quickstart-docker dan buka direktori tersebut:

        mkdir quickstart-docker
        cd quickstart-docker
        
      3. Buat file bernama quickstart.sh dengan konten berikut:

        #!/bin/sh
        echo "Hello, world! The time is $(date)."
      4. Buat file bernama Dockerfile dengan konten berikut:

        FROM alpine
        COPY quickstart.sh /
        CMD ["/quickstart.sh"]
      5. Di jendela terminal, jalankan perintah berikut untuk membuat quickstart.sh dapat dieksekusi:

        chmod +x quickstart.sh
        

      Membuat repositori Docker di Artifact Registry

      1. Buat repositori Docker baru bernama quickstart-docker-repo di lokasi us-west2 dengan deskripsi "Docker repository":

        gcloud artifacts repositories create quickstart-docker-repo --repository-format=docker \
            --location=us-west2 --description="Docker repository"
        
      2. Pastikan repositori Anda telah dibuat:

        gcloud artifacts repositories list
        

        Anda akan melihat quickstart-docker-repo dalam daftar repositori yang ditampilkan.

      Membangun image menggunakan Dockerfile

      Dengan Cloud Build, Anda dapat membangun image Docker menggunakan Dockerfile. Anda tidak memerlukan file konfigurasi Cloud Build terpisah.

      Untuk membuat menggunakan Dockerfile:

      1. Dapatkan ID project Google Cloud Anda dengan menjalankan perintah berikut:

        gcloud config get-value project
        
      2. Jalankan perintah berikut dari direktori yang berisi quickstart.sh dan Dockerfile:

        gcloud builds submit --region=us-west2 --tag us-west2-docker.pkg.dev/PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1
        

      Setelah build selesai, Anda akan melihat output yang mirip dengan berikut ini:

      DONE
      ------------------------------------------------------------------------------------------------------------------------------------
      ID                                    CREATE_TIME                DURATION  SOURCE   IMAGES     STATUS
      545cb89c-f7a4-4652-8f63-579ac974be2e  2020-11-05T18:16:04+00:00  16S       gs://gcb-docs-project_cloudbuild/source/1604600163.528729-b70741b0f2d0449d8635aa22893258fe.tgz  us-west2-docker.pkg.dev/gcb-docs-project/quickstart-docker-repo/quickstart-image:tag1  SUCCESS
      

      Anda baru saja membangun image Docker bernama quickstart-image menggunakan Dockerfile dan mengirim image ke Artifact Registry.

      Membangun image menggunakan file konfigurasi build

      Di bagian ini, Anda akan menggunakan file konfigurasi Cloud Build untuk mem-build image Docker yang sama seperti di atas. File konfigurasi build menginstruksikan Cloud Build untuk melakukan tugas berdasarkan spesifikasi Anda.

      1. Di direktori yang sama yang berisi quickstart.sh dan Dockerfile, buat file bernama cloudbuild.yaml dengan konten berikut. File ini adalah file konfigurasi build Anda. Pada waktu build, Cloud Build secara otomatis mengganti $PROJECT_ID dengan project ID Anda.

        steps:
        - name: 'gcr.io/cloud-builders/docker'
          script: |
            docker build -t us-west2-docker.pkg.dev/$PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1 .
          automapSubstitutions: true
        images:
        - 'us-west2-docker.pkg.dev/$PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1'
      2. Mulai build dengan menjalankan perintah berikut:

        gcloud builds submit --region=us-west2 --config cloudbuild.yaml
        

      Setelah build selesai, Anda akan melihat output yang mirip dengan berikut ini:

      DONE
      ------------------------------------------------------------------------------------------------------------------------------------
      ID                                    CREATE_TIME                DURATION  SOURCE          IMAGES          STATUS
      046ddd31-3670-4771-9336-8919e7098b11  2020-11-05T18:24:02+00:00  15S       gs://gcb-docs-project_cloudbuild/source/1604600641.576884-8153be22c94d438aa86c78abf11403eb.tgz  us-west2-docker.pkg.dev/gcb-docs-project/quickstart-docker-repo/quickstart-image:tag1  SUCCESS
      

      Anda baru saja mem-build quickstart-image menggunakan file konfigurasi build dan mengirim image ke Artifact Registry.

      Lihat detail build

      1. Buka halaman Cloud Build di konsol Google Cloud .

        Buka halaman Cloud Build

      2. Jika perlu, pilih project Anda, lalu klik Buka.

        Anda akan melihat halaman Histori build:

        Screenshot halaman histori build

      3. Jika perlu, pilih us-west2di menu drop-down Region untuk melihat build di region tersebut.

        Akan ada dua build yang tercantum, satu untuk setiap build yang Anda jalankan dalam panduan memulai ini.

      4. Klik salah satu build.

        Anda akan melihat halaman Build details.

      5. Untuk melihat artefak build Anda, di bagian Build Summary, klik Build Artifacts.

        Anda akan melihat output yang mirip dengan berikut ini:

        Screenshot artefak build

        Anda dapat mendownload log build dan melihat detail image di Artifact Registry dari halaman ini.

Pembersihan

Agar akun Google Cloud Anda tidak dikenai biaya untuk resource yang digunakan pada halaman ini, ikuti langkah-langkah berikut.

  1. Buka halaman Artifact Registry di konsol Google Cloud .

    Buka halaman Artifact Registry

  2. Pilih project Anda lalu klik Buka.

  3. Pilih quickstart-docker-repo.

  4. Klik Hapus.

Anda kini telah menghapus repositori yang Anda buat sebagai bagian dari panduan memulai ini.

Langkah berikutnya