Mengonfigurasi container

Halaman ini menjelaskan cara mengonfigurasi port container, perintah entrypoint, dan argumen untuk layanan Cloud Run.

Saat Cloud Run memulai container, Cloud Run akan menjalankan perintah entrypoint default dan argumen perintah default image. Jika Anda ingin mengganti entrypoint default dan argumen perintah image, Anda dapat menggunakan kolom command dan args dalam konfigurasi container. Kolom command menentukan perintah sebenarnya yang dijalankan oleh container. Kolom args menentukan argumen yang diteruskan ke perintah tersebut.

Mengonfigurasi port container

Perubahan konfigurasi apa pun akan menghasilkan revisi baru. Revisi berikutnya juga akan secara otomatis mendapatkan setelan konfigurasi ini, kecuali jika Anda melakukan update yang eksplisit untuk mengubahnya.

Untuk layanan Cloud Run, Cloud Run memasukkan variabel lingkungan PORT ke dalam container. Jika Anda men-deploy beberapa container ke sebuah layanan, ini disebut container ingress. Penampung memproses port yang ditentukan oleh variabel lingkungan PORT, bukan pada port hardcode tertentu. Jika tidak memungkinkan, konfigurasi pemrosesan agar terjadi di port yang mengirim permintaan ke penampung. Perhatikan bahwa setelan port tidak berlaku untuk tugas Cloud Run.

Konsol

  1. Di konsol Google Cloud, buka Cloud Run:

    Buka Cloud Run

  2. Klik Buat Layanan jika Anda mengonfigurasi layanan baru yang akan di-deploy. Jika Anda mengonfigurasi layanan yang ada, klik layanan, lalu klik Edit and deploy new revision.

  3. Jika Anda mengonfigurasi layanan baru, isi halaman setelan layanan awal sesuai keinginan, kemudian klik Container, vo;ume, jejaring, sekuritas untuk memperluas halaman konfigurasi layanan.

  4. Klik tab Container.

    gambar

    • Tentukan port tujuan pengiriman permintaan yang Anda inginkan, jika bukan nilai default 8080. Tindakan ini juga menetapkan variabel lingkungan PORT.
  5. Klik Buat atau Deploy.

Command line

Anda dapat memperbarui konfigurasi port layanan menggunakan perintah berikut:

gcloud run services update SERVICE --port PORT

Ganti

  • SERVICE dengan nama layanan.
  • PORT dengan port untuk mengirim permintaan. Perhatikan bahwa port defaultnya adalah 8080.

Anda juga dapat mengonfigurasi port selama deployment menggunakan perintah:

gcloud run deploy --image IMAGE_URL --port PORT

Ganti IMAGE_URL dengan referensi ke image container, contohnya, us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL memiliki bentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .

YAML

Anda dapat mendownload dan melihat konfigurasi layanan yang ada menggunakan perintah gcloud run services describe --format export, yang memberikan hasil yang telah diolah dalam format YAML. Kemudian, Anda dapat mengubah kolom yang dijelaskan di bawah ini dan mengunggah YAML yang telah dimodifikasi menggunakan perintah gcloud run services replace. Pastikan Anda hanya mengubah kolom seperti yang didokumentasikan.

  1. Untuk melihat dan mendownload konfigurasi:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Perbarui containerPort: atribut:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          name: REVISION
        spec:
          containers:
          - image: IMAGE_URL
            ports:
            - containerPort: PORT
    

    Ganti

    • SERVICE dengan nama layanan Cloud Run Anda
    • IMAGE_URL dengan referensi ke image container, misalnya, us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL berbentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
    • PORT dengan port untuk mengirim permintaan
    • REVISION dengan nama revisi baru atau hapus (jika ada). Jika Anda memberikan nama revisi baru, nama tersebut harus memenuhi kriteria berikut:
      • Dimulai denganSERVICE-
      • Hanya berisi huruf kecil, angka, dan -
      • Tidak diakhiri dengan -
      • Tidak melebihi 63 karakter
  3. Ganti layanan dengan konfigurasinya yang baru menggunakan perintah berikut:

    gcloud run services replace service.yaml

Mengonfigurasi entrypoint dan argumen

Perubahan konfigurasi apa pun akan menghasilkan revisi baru. Revisi berikutnya juga akan secara otomatis mendapatkan setelan konfigurasi ini, kecuali jika Anda melakukan update yang eksplisit untuk mengubahnya.

Perintah dan argumen container yang ditentukan akan menggantikan ENTRYPOINT dan CMD image default.

Anda dapat menetapkan perintah dan argumen titik entri menggunakan Google Cloud Console, Google Cloud CLI, atau menggunakan file YAML saat membuat layanan baru atau men-deploy revisi baru:

Konsol

  1. Di konsol Google Cloud, buka Cloud Run:

    Buka Cloud Run

  2. Klik Buat Layanan jika Anda mengonfigurasi layanan baru yang akan di-deploy. Jika Anda mengonfigurasi layanan yang ada, klik layanan, lalu klik Edit and deploy new revision.

  3. Jika Anda mengonfigurasi layanan baru, isi halaman setelan layanan awal sesuai keinginan, kemudian klik Container, vo;ume, jejaring, sekuritas untuk memperluas halaman konfigurasi layanan.

  4. Klik tab Container.

    gambar

    • Tetapkan perintah yang Anda inginkan untuk dijalankan container, jika bukan perintah yang ditentukan dalam container, kemudian tentukan argumen untuk perintah entrypoint secara opsional.
  5. Klik Buat atau Deploy.

Command line

Untuk memperbarui perintah dan argumen awal untuk layanan yang ada:

gcloud run services update SERVICE --command COMMAND --args ARG1,ARG-N

Ganti

  • COMMAND dengan perintah yang digunakan untuk memulai container jika Anda tidak menggunakan perintah default.
  • ARG1 dengan argumen yang Anda kirim ke perintah container, gunakan daftar yang dipisahkan koma untuk argumen yang lebih dari satu.

Untuk menetapkan entrypoint dan argumen selama deployment layanan baru atau yang sudah ada:

gcloud run deploy --image IMAGE_URL --command COMMAND --args ARG1,ARG-N

Ganti IMAGE_URL dengan referensi ke image container, contohnya, us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, maka repositori REPO_NAME harus sudah dibuat. URL berbentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG

Untuk menghapus perintah dan argumen entrypoint yang telah Anda tetapkan (pulihkan ke default container), sediakan string kosong seperti berikut:

gcloud run deploy --image IMAGE_URL --command "" --args ""

YAML

Anda dapat mendownload dan melihat konfigurasi layanan yang ada menggunakan perintah gcloud run services describe --format export, yang memberikan hasil yang telah diolah dalam format YAML. Kemudian, Anda dapat mengubah kolom yang dijelaskan di bawah ini dan mengunggah YAML yang telah dimodifikasi menggunakan perintah gcloud run services replace. Pastikan Anda hanya mengubah kolom seperti yang didokumentasikan.

  1. Untuk melihat dan mendownload konfigurasi:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Update atribut command dan args:

    spec:
      containers:
      - image: IMAGE_URL
        command:
        - COMMAND
        args:
        - "ARG1"
        - "ARG-N"
    

    Ganti

    • IMAGE_URL dengan referensi ke image container misalnya, us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL berbentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
    • COMMAND dengan perintah yang digunakan untuk memulai container jika Anda tidak menggunakan perintah default.
    • ARG1 dengan argumen yang Anda kirim ke perintah container. Jika Anda menggunakan beberapa argumen, tentukan setiap argumen di barisnya masing-masing, contohnya, seperti yang ditunjukkan, ARG-N.
  3. Ganti layanan dengan konfigurasinya yang baru menggunakan perintah berikut:

    gcloud run services replace service.yaml

Terraform

Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.

Resource google_cloud_run_v2_service berikut menentukan perintah dan argumen. Ganti /server dengan perintah yang digunakan untuk memulai container Anda, dan tambahkan argumen apa pun yang diperlukan ke array args.

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-containers"
  location = "us-central1"

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"

      # Container "entry-point" command
      command = ["/server"]

      # Container "entry-point" args
      args = []
    }
  }
}

Menggunakan tanda sama dengan atau koma dalam argumen

Jika Anda menggunakan tanda sama dengan dalam argumen, sediakan tanda sama dengan menggunakan format berikut:

gcloud run deploy  \
  --args="--repo-allowlist=github.com/example/example_demo"

Jika argumen Anda menggunakan koma, lihat mengonfigurasi variabel lingkungan untuk mengetahui lebih lengkap mengenai cara meng-escape variabel tersebut.

Mengonfigurasi urutan awal container untuk deployment file bantuan

Untuk menentukan urutan pengaktifan container dalam deployment file bantuan, gunakan fitur dependensi container. Anda menentukan container yang memiliki dependensi dan mencantumkan container yang menjadi dependensinya: container tersebut dimulai terlebih dahulu. Penampung yang tidak memiliki dependensi selalu dimulai terlebih dahulu dan secara serentak.

Anda harus menggunakan pemeriksaan health check startup jika ingin berhasil menggunakan fitur ini. Pemeriksaan startup memungkinkan Cloud Run memeriksa kondisi container dependen, sehingga memastikan container tersebut berhasil diteruskan sebelum memulai container berikutnya. Jika Anda tidak menggunakan healthcheck, container akan dimulai dalam urutan yang ditentukan meskipun container yang menjadi dependensinya gagal dimulai.

Perhatikan bahwa container ingress memiliki pemeriksaan health check startup default.

Anda dapat menggunakan Konsol Google Cloud, Google Cloud CLI, atau YAML untuk menentukan urutan startup:

Konsol

  1. Buka Cloud Run

    • Untuk layanan yang ada, klik layanan dalam daftar, lalu pilih Edit and deploy new revision untuk menampilkan formulir deployment revisi.
    • Untuk layanan baru, klik Buat layanan.
  2. Untuk layanan baru, tentukan nama layanan, URL container masuk, alokasi CPU, kontrol masuk, dan autentikasi, lalu klik Container(s), volume, networking, security.

  3. Untuk layanan baru, di tab Container(s), volume, networking, security, lakukan hal berikut:

    1. Konfigurasi container ingress.
    2. Untuk menambahkan setiap penampung lain yang Anda deploy, klik Tambahkan penampung.
    3. Untuk semua container kecuali container ingress, konfigurasikan health check startup. Penampung masuk memiliki health check default.
    4. Jika penampung memerlukan penampung lain untuk dimulai terlebih dahulu sebelum dapat dimulai, gunakan menu Urutan pengaktifan penampung untuk memilih penampung yang harus dimulai terlebih dahulu.
  4. Untuk layanan yang sudah ada, ikuti langkah-langkah berikut:

    1. Untuk semua container kecuali container ingress, konfigurasikan health check startup. Penampung masuk memiliki health check default.
    2. Setiap container ditampilkan dengan menu Urutan startup container sendiri. Jika container memerlukan container lain untuk dimulai terlebih dahulu sebelum dapat dimulai, gunakan menu Urutan startup container untuk memilih container yang harus dimulai terlebih dahulu.
  5. Selesaikan konfigurasi lain yang diperlukan, lalu klik Create untuk layanan baru atau Deploy untuk layanan yang sudah ada. Tunggu hingga deployment selesai.

Command line

Parameter container di Google Cloud CLI berada dalam Pratinjau.

Sebelum menggunakan Google Cloud CLI untuk menentukan urutan startup, Anda harus mengonfigurasi health check startup untuk semua container kecuali container ingress. Container ingress memiliki health check startup default. Anda tidak dapat mengonfigurasi health check menggunakan Google Cloud CLI.

  1. Di konsol Google Cloud, aktifkan Cloud Shell.

    Aktifkan Cloud Shell

    Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.

  2. Untuk men-deploy beberapa container ke layanan dengan urutan startup yang ditentukan, jalankan perintah:

gcloud run deploy SERVICE \
     --container CONTAINER_1_NAME --image='INGRESS_IMAGE' \
     --container CONTAINER_2_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAME \
     --container CONTAINER_3_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAMECONTAINER_2_NAME
  • Ganti SERVICE dengan nama layanan yang menjadi tujuan deployment. Anda dapat menghilangkan parameter ini sepenuhnya, tetapi Anda akan diminta untuk memasukkan nama layanan jika mengabaikannya.
  • Ganti INGRESS_IMAGE dengan referensi ke image container yang akan menerima permintaan, misalnya, us-docker.pkg.dev/cloudrun/container/hello:latest.
  • Ganti SIDECAR_IMAGE dengan referensi ke gambar container file bantuan

    Jika Anda ingin mengonfigurasi setiap penampung dalam perintah deploy, berikan konfigurasi setiap penampung setelah parameter container.

YAML

Anda dapat mendownload dan melihat konfigurasi layanan yang ada menggunakan perintah gcloud run services describe --format export, yang memberikan hasil yang telah diolah dalam format YAML. Kemudian, Anda dapat mengubah kolom yang dijelaskan di bawah ini dan mengunggah YAML yang telah dimodifikasi menggunakan perintah gcloud run services replace. Pastikan Anda hanya mengubah kolom seperti yang didokumentasikan.

  1. Untuk melihat dan mendownload konfigurasi:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Perbarui container-dependencies atribut:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      annotations:
      name: SERVICE
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/container-dependencies: '{"CONTAINER1":["CONTAINER2"], "CONTAINER3":["CONTAINER1","CONTAINER2"]}'
    

    Ganti

    • CONTAINER1 dengan nama container pertama yang bergantung pada satu container atau lebih. Perhatikan bahwa Anda dapat menetapkan nama container dalam YAML: Cloud Run akan secara otomatis membuat nama jika nama tidak ditentukan.
    • CONTAINER2 dengan nama container yang harus dimulai sebelum CONTAINER1.
    • CONTAINER3 dengan nama container kedua yang bergantung pada satu container atau lebih.

    Dalam contoh yang ditampilkan dalam cuplikan YAML, CONTAINER2 dimulai terlebih dahulu, CONTAINER1 dimulai kedua, dan CONTAINER3 dimulai terakhir.

  3. Ganti layanan dengan konfigurasinya yang baru menggunakan perintah berikut:

    gcloud run services replace service.yaml

Menampilkan setelan penampung

Agar dapat melihat setelan container saat ini untuk layanan Cloud Run Anda:

Konsol

  1. Di konsol Google Cloud, buka Cloud Run:

    Buka Cloud Run

  2. Klik layanan yang Anda minati untuk membuka halaman Detail layanan.

  3. Klik tab Revisi.

  4. Pada panel detail di sebelah kanan, setelan container tercantum di bagian tab Container.

Command line

  1. Gunakan perintah berikut:

    gcloud run services describe SERVICE
  2. Temukan setelan container dalam konfigurasi yang ditampilkan.