Cloud Run admite el despliegue directo de código fuente, pero también puedes compilar tu código fuente en una imagen de contenedor y, a continuación, desplegar esta imagen de contenedor en Cloud Run. Puedes usar imágenes de contenedor para cualquier recurso de Cloud Run.
Casos prácticos habituales para desacoplar las operaciones de compilación y despliegue:
- Integración y entrega continuas: los desarrolladores escriben y envían código a un repositorio de origen. Un sistema de CI/CD compila automáticamente este código fuente en un contenedor, ejecuta pruebas y lo despliega automáticamente en un entorno de staging.
- Infraestructura como código: los recursos de Cloud Run que se gestionan con YAML o Terraform hacen referencia a una URL de imagen de contenedor. El código fuente escrito por los desarrolladores debe integrarse en una imagen de contenedor.
Puedes usar cualquier sistema para crear un contenedor. En esta página se describen las siguientes formas de usar Cloud Build para compilar imágenes de contenedor:
Requisitos de los servicios de Cloud Run
En el caso de los servicios de Cloud Run, puedes usar imágenes de contenedor creadas con cualquier herramienta capaz de crear imágenes de contenedor, siempre que respeten el contrato de contenedor.
En concreto, tu código debe recibir solicitudes HTTP en el puerto definido por la variable de entorno PORT
. Cloud Run inserta automáticamente esta variable de entorno PORT
en tu contenedor.
Antes de empezar
Necesitas la CLI de Google Cloud para ejecutar algunos de los comandos de esta página.
Crea un repositorio en un registro de contenedores compatible. Para crear un repositorio de Artifact Registry, ejecuta el siguiente comando:
gcloud artifacts repositories create REPOSITORY \ --repository-format=docker \ --location=LOCATION \ --description="DESCRIPTION" \ --immutable-tags \ --async
Puedes configurar Docker para obtener acceso a Artifact Registry mediante el asistente de credenciales de gcloud CLI:
Sustituyegcloud auth configure-docker LOCATION-docker.pkg.dev
LOCATION
por el nombre de la región de tu repositorio de contenedores (por ejemplo,us-west2
).
Compilar con un Dockerfile
Antes de compilar tus fuentes en una imagen de contenedor ("contenedorizar") de forma local con Docker o Cloud Build, debes tener un Dockerfile junto con tus fuentes. Los ejemplos de Hello World incluyen aplicaciones de muestra y Dockerfiles en muchos lenguajes populares.
Si usas Dockerfiles, puedes usar cualquiera de los siguientes métodos para compilar:
- Compilar con Cloud Build
- Compilar de forma local con Docker
Compilar con Cloud Build
Puedes compilar tu imagen en Google Cloud con Cloud Build:
Desplázate hasta la carpeta que contiene tus fuentes y el archivo Dockerfile.
Ejecuta el comando:
gcloud builds submit --tag IMAGE_URL
Sustituye IMAGE_URL por una referencia a la imagen de contenedor. Por ejemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Si usas Artifact Registry, el repositorio REPO_NAME ya debe estar creado. La URL sigue el formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.
Para obtener consejos sobre cómo mejorar el rendimiento de las compilaciones, consulta el artículo Acelerar las compilaciones.
Compilar de forma local y enviar mediante Docker
Si tienes Docker instalado localmente, puedes usar docker build
en lugar de Cloud Build o los buildpacks de Google Cloud.
Para compilar la imagen de contenedor con Docker, sigue estos pasos:
Ve a la carpeta que contiene tus fuentes y
Dockerfile
.Ejecuta el comando:
docker build . --tag IMAGE_URL
Sustituye IMAGE_URL por una referencia a la imagen de contenedor. Por ejemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Si usas Artifact Registry, el repositorio REPO_NAME ya debe estar creado. La URL sigue el formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.Ten en cuenta que, si usas un Mac con Apple Silicon, debes especificar
--platform linux/amd64
en la línea de comandos.Envía la imagen de contenedor a un registro de contenedores compatible:
docker push IMAGE_URL
Sustituye IMAGE_URL por una referencia a la imagen de contenedor. Por ejemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Si usas Artifact Registry, el repositorio REPO_NAME ya debe estar creado. La URL sigue el formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.
Para excluir archivos locales de este proceso, sigue las instrucciones del .dockerignore
archivo de configuración.
Compilar con los buildpacks de Google Cloud
Los paquetes de compilación de Google Cloud son un conjunto de paquetes de compilación compatibles con CNCF que compilan código fuente en imágenes de contenedor diseñadas para ejecutarse en Google Cloud plataformas de contenedores Google Cloud , como Cloud Run.
Para ver una lista de los idiomas admitidos, consulta la documentación de los paquetes de compilación de Google Cloud.
Compilar con los buildpacks de Google Cloud mediante Cloud Build
Para compilar con los buildpacks de Google Cloud, haz lo siguiente:
Ve a la carpeta que contiene tus fuentes.
Ejecuta el comando:
gcloud builds submit --pack image=IMAGE_URL
Sustituye IMAGE_URL por una referencia a la imagen de contenedor. Por ejemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Si usas Artifact Registry, el repositorio REPO_NAME ya debe estar creado. La URL sigue el formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.Espera a que se complete la compilación.
Compilar con los buildpacks de Google Cloud mediante la línea de comandos pack
Para compilar con el comando pack, haz lo siguiente:
Si aún no lo has hecho, instala Docker.
Si aún no lo has hecho, instala
pack
.Ve a la carpeta que contiene tus fuentes.
Ejecuta el siguiente comando para compilar y enviar al registro de contenedores compatible:
pack build --publish IMAGE_URL
Sustituye IMAGE_URL por una referencia a la imagen de contenedor. Por ejemplo,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Si usas Artifact Registry, el repositorio REPO_NAME ya debe estar creado. La URL sigue el formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.Espera a que termine
pack
.
Para obtener más información, consulta las instrucciones de la sección Crear una aplicación.
Siguientes pasos
Para desplegar los contenedores compilados en Cloud Run, sigue las instrucciones de Desplegar servicios.
Consulta cómo crear y actualizar trabajos de Cloud Run a partir de la imagen de contenedor que has creado.
Una vez que se haya compilado el contenedor, puedes probarlo de forma local antes de desplegarlo en Cloud Run. Consulta Probar un servicio de Cloud Run de forma local para obtener más información.
Después de crear o actualizar un trabajo con el contenedor creado, consulta cómo ejecutar el trabajo una sola vez, de forma programada o como parte de un flujo de trabajo.
Para automatizar las compilaciones y los despliegues de tus servicios de Cloud Run con activadores de Cloud Build, configura el despliegue continuo.
Para crear contenedores óptimos para aplicaciones Java, consulte el artículo sobre crear contenedores Java con Jib.