Cloud Run mendukung deployment kode sumber secara langsung, namun, Anda juga dapat mem-build kode sumber menjadi image container, lalu men-deploy image container ini ke Cloud Run. Anda dapat menggunakan image container untuk resource Cloud Run apa pun.
Kasus penggunaan umum untuk memisahkan operasi build dan deployment:
- Continuous Integration dan Delivery: Developer menulis dan mengirimkan kode ke repositori sumber, sistem CI/CD secara otomatis mem-build kode sumber ini menjadi container, menjalankan pengujian, dan men-deploy-nya secara otomatis ke lingkungan staging.
- Infrastructure as Code: Resource Cloud Run yang dikelola menggunakan YAML atau Terraform merujuk ke URL image container. Kode sumber yang ditulis oleh developer perlu dibangun menjadi image container.
Anda dapat menggunakan sistem apa pun yang Anda inginkan untuk membuat container. Halaman ini menjelaskan cara berikut untuk menggunakan Cloud Build guna membangun image container:
Persyaratan untuk layanan Cloud Run
Untuk layanan Cloud Run, Anda dapat menggunakan image container yang dibangun dengan alat apa pun yang mampu
membangun image container, asalkan alat tersebut mematuhi kontrak container.
Secara khusus, kode Anda harus memproses permintaan HTTP pada port yang ditentukan oleh
variabel lingkungan PORT
. Variabel lingkungan PORT
ini
secara otomatis dimasukkan oleh Cloud Run ke dalam container Anda.
Sebelum memulai
Anda memerlukan Google Cloud CLI untuk menjalankan beberapa perintah di halaman ini.
Buat repositori di container registry yang didukung. Untuk membuat repositori Artifact Registry, jalankan:
gcloud artifacts repositories create REPOSITORY \ --repository-format=docker \ --location=LOCATION \ --description="DESCRIPTION" \ --immutable-tags \ --async
Anda dapat mengonfigurasi Docker untuk mendapatkan akses ke Artifact Registry menggunakan helper kredensial gcloud CLI:
Gantigcloud auth configure-docker LOCATION-docker.pkg.dev
LOCATION
dengan nama region repositori container Anda, misalnya,us-west2
.
Membangun menggunakan Dockerfile
Sebelum membangun sumber Anda ke dalam image container ("containerizing") secara lokal menggunakan Docker atau Cloud Build, Anda harus menyertakan Dockerfile bersama dengan sumber Anda. Contoh Hello World berisi aplikasi contoh dan Dockerfile dalam banyak bahasa yang populer.
Jika Anda menggunakan Dockerfile, Anda dapat menggunakan salah satu metode berikut untuk membangun:
- Membangun menggunakan Cloud Build
- Membangun secara lokal menggunakan Docker
Membangun menggunakan Cloud Build
Anda dapat membangun image Anda di Google Cloud dengan menggunakan Cloud Build:
Buka folder yang berisi sumber dan Dockerfile Anda.
Jalankan perintah:
gcloud builds submit --tag IMAGE_URL
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 mengikuti formatLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.
Untuk mengetahui tips terkait cara meningkatkan performa membangun, lihat Mempercepat build Anda
Membangun secara lokal dan mengirim menggunakan Docker
Jika Anda telah menginstal Docker secara lokal, Anda
dapat menggunakan docker build
daripada menggunakan Cloud Build atau buildpack Google Cloud.
Untuk membangun image container menggunakan Docker:
Buka folder yang berisi sumber Anda dan
Dockerfile
.Jalankan perintah:
docker build . --tag IMAGE_URL
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 mengikuti formatLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.Perhatikan bahwa jika Anda menggunakan Mac dengan silikon Apple, Anda harus menentukan
--platform linux/amd64
di command line.Kirim image container ke container registry yang didukung:
docker push IMAGE_URL
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 mengikuti formatLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.
Untuk mengecualikan file lokal dari proses ini, ikuti petunjuk
file konfigurasi.dockerignore
.
Membangun menggunakan buildpack Google Cloud
Buildpack Google Cloud adalah sekumpulan Buildpack yang kompatibel dengan CNCF yang membangun kode sumber ke dalam image container yang dirancang untuk berjalan di platform container Google Cloud , termasuk Cloud Run.
Untuk mengetahui daftar bahasa yang didukung, lihat dokumentasi buildpack Google Cloud
Membangun dengan buildpack Google Cloud menggunakan Cloud Build
Untuk membangun dengan buildpack Google Cloud:
Buka folder yang berisi sumber Anda.
Jalankan perintah:
gcloud builds submit --pack image=IMAGE_URL
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 mengikuti formatLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.Tunggu hingga build selesai.
Membangun dengan buildpack Google Cloud menggunakan command line pack
Untuk membangun menggunakan perintah pengemasan:
Jika Anda belum melakukannya, instal Docker.
Jika Anda belum melakukannya, instal
pack
.Buka folder yang berisi sumber Anda.
Jalankan perintah berikut untuk membangun dan mengirim ke container registry yang didukung:
pack build --publish IMAGE_URL
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 mengikuti formatLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.Tunggu hingga
pack
selesai.
Untuk informasi selengkapnya, baca petunjuk di bagian Membangun Aplikasi.
Langkah berikutnya
Untuk men-deploy container Anda yang telah dibangun ke Cloud Run, ikuti Men-deploy layanan.
Pelajari cara membuat dan memperbarui tugas Cloud Run dari image container yang Anda buat.
Setelah container Anda dibangun, Anda dapat menguji secara lokal sebelum men-deploy ke Cloud Run; lihat Menguji layanan Cloud Run secara lokal untuk mempelajari lebih lanjut.
Setelah membuat atau memperbarui tugas menggunakan penampung yang dibuat, lihat cara menjalankan tugas sekaligus, sesuai jadwal, atau sebagai bagian dari alur kerja.
Untuk mengotomatiskan build dan deployment layanan Cloud Run Anda menggunakan Pemicu Cloud Build, siapkan deployment berkelanjutan.
Agar dapat menjalankan build container yang optimal untuk aplikasi Java, lihat Membangun container Java dengan Jib.