Desplegar una aplicación en contenedores en Cloud Run con Cloud Build
En esta página se muestra cómo usar Cloud Build para desplegar una aplicación en contenedores en Cloud Run.
Para seguir las instrucciones paso a paso de esta tarea directamente en el editor de Cloud Shell, haz clic en Ayúdame:
Antes de empezar
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build, Cloud Run, Artifact Registry, and Compute Engine APIs.
-
Install the Google Cloud CLI.
-
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build, Cloud Run, Artifact Registry, and Compute Engine APIs.
-
Install the Google Cloud CLI.
-
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init
Abre una ventana de terminal.
Define variables de entorno para almacenar el ID y el número de tu proyecto:
PROJECT_ID=$(gcloud config list --format='value(core.project)') PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')
Asigna el rol Administrador de Cloud Run a la cuenta de servicio de Cloud Build:
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member=serviceAccount:$(gcloud projects describe $PROJECT_ID \ --format="value(projectNumber)")-compute@developer.gserviceaccount.com \ --role=roles/run.admin
Asigna el rol Usuario de objetos de Storage a la cuenta de servicio de Cloud Build:
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member=serviceAccount:$(gcloud projects describe $PROJECT_ID \ --format="value(projectNumber)")-compute@developer.gserviceaccount.com \ --role="roles/storage.objectUser"
Asigna el rol Usuario de cuenta de servicio de IAM a la cuenta de servicio de Cloud Build para la cuenta de servicio de tiempo de ejecución de Cloud Run:
gcloud iam service-accounts add-iam-policy-binding $(gcloud projects describe $PROJECT_ID \ --format="value(projectNumber)")-compute@developer.gserviceaccount.com \ --member=serviceAccount:$(gcloud projects describe $PROJECT_ID \ --format="value(projectNumber)")-compute@developer.gserviceaccount.com \ --role="roles/iam.serviceAccountUser" \ --project=$PROJECT_ID
Abre una ventana de terminal (si aún no lo has hecho).
Crea un directorio llamado
helloworld
y accede a él:mkdir helloworld cd helloworld
Crea un archivo llamado
cloudbuild.yaml
con el siguiente contenido. Este archivo es el archivo de configuración de Cloud Build. Contiene instrucciones para que Cloud Build despliegue la imagen llamadaus-docker.pkg.dev/cloudrun/container/hello
en el servicio de Cloud Run llamadocloudrunservice
.Para desplegar la imagen, ejecuta el siguiente comando:
gcloud builds submit --region=us-west2 --config cloudbuild.yaml
Abre la página Cloud Run en la Google Cloud consola:
Selecciona el proyecto y haz clic en Abrir.
Verás la página Servicios de Cloud Run.
En la tabla, busca la fila con el nombre cloudrunservice y haz clic en cloudrunservice.
Se muestra la página Detalles del servicio de cloudrunservice.
Para ejecutar la imagen que has implementado en cloudrunservice, haz clic en la URL:
- Consulta cómo compilar con Cloud Build.
- Consulta cómo crear un archivo básico de configuración de versiones.
- Consulta cómo ver los resultados de la compilación.
- Consulta más formas de desplegar en Cloud Run.
- Consulta cómo desplegar en Google Kubernetes Engine.
- Consulta más información sobre los recursos de DevOps.
- Descubre el programa de investigación de DevOps.
Conceder permisos
Cloud Build requiere los permisos Administrador de Cloud Run y Usuario de cuenta de servicio de IAM para poder implementar una imagen en Cloud Run.
Desplegar una imagen prediseñada
Puedes configurar Cloud Build para desplegar en Cloud Run una imagen prediseñada que esté almacenada en Artifact Registry.
Para desplegar una imagen prediseñada, sigue estos pasos:
Cuando se complete la compilación, verás un resultado similar al siguiente:
DONE
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ID CREATE_TIME DURATION SOURCE IMAGES STATUS
784653b2-f00e-4c4b-9f5f-96a5f115bef4 2020-01-23T14:53:13+00:00 23S gs://cloudrunqs-project_cloudbuild/source/1579791193.217726-ea20e1c787fb4784b19fb1273d032df2.tgz - SUCCESS
Acabas de desplegar la imagen hello
en Cloud Run.