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. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

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

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. Instal Google Cloud CLI.

  6. Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

  7. Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:

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

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

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

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  11. Instal Google Cloud CLI.

  12. Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

  13. Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:

    gcloud init
  14. Pastikan Anda memiliki peran berikut di project: Administrator Artifact Registry, Editor Cloud Build, Pelihat Log, Pengguna Akun Layanan, Admin Penggunaan Layanan, Pelihat Bucket Storage, Pembuat Objek Storage

    Memeriksa peran

    1. Di konsol Google Cloud , buka halaman IAM.

      Buka IAM
    2. Pilih project.
    3. Di kolom Akun utama, temukan semua baris yang mengidentifikasi Anda atau grup yang Anda ikuti. Untuk mengetahui grup mana saja yang Anda ikuti, hubungi administrator Anda.

    4. Untuk semua baris yang menentukan atau menyertakan Anda, periksa kolom Peran untuk melihat apakah daftar peran menyertakan peran yang diperlukan.

    Memberikan peran

    1. Di konsol Google Cloud , buka halaman IAM.

      Buka IAM
    2. Pilih project.
    3. Klik Grant access.
    4. Di kolom New principals, masukkan ID pengguna Anda. Biasanya, ini adalah alamat email untuk Akun Google.

    5. Klik Pilih peran, lalu telusuri peran.
    6. Untuk memberikan peran tambahan, klik Add another role, lalu tambahkan tiap peran tambahan.
    7. Klik Simpan.

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
    

Buat repositori Docker di Artifact Registry

  1. Gunakan perintah gcloud artifacts repositories create untuk membuat repositori Docker 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
    

    Daftar repositori yang ditampilkan harus menyertakan quickstart-docker-repo.

    Artifact Registry menggunakan konvensi penamaan untuk mengidentifikasi repositori dan image. Misalnya, saat berinteraksi dengan image Docker yang disimpan di Artifact Registry di region us-west2, Anda menggunakan us-west2-docker.pkg.dev sebagai nama host registry dalam perintah Anda.

Membangun image menggunakan Dockerfile

Gunakan perintah gcloud builds submit untuk membangun image Docker menggunakan Dockerfile. Anda tidak memerlukan file konfigurasi Cloud Build terpisah.

  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, output-nya akan 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 yang di-build pada langkah sebelumnya. 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, output-nya akan 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 membangun 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, di bagian Build Summary, klik Build artifacts.

    Anda akan melihat output yang mirip dengan yang berikut:

    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