Cloud Run admite la implementación directa del código fuente. Sin embargo, también puedes compilar el código fuente en una imagen de contenedor y, luego, implementar esta imagen de contenedor en Cloud Run. Puedes usar imágenes de contenedor para cualquier recurso de Cloud Run.
Estos son algunos casos de uso habituales para desacoplar las operaciones de compilación e implementación:
- 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 implementa automáticamente en un entorno de etapa de pruebas.
- Infraestructura como código: Los recursos de Cloud Run que se administran con YAML o Terraform hacen referencia a una URL de imagen de contenedor. El código fuente escrito por los desarrolladores debe compilarse en una imagen de contenedor.
Puedes usar cualquier sistema que desees para compilar un contenedor. En esta página, se describen las siguientes formas de usar Cloud Build para compilar imágenes de contenedor:
Requisitos para los servicios de Cloud Run
Para los servicios de Cloud Run, puedes usar imágenes de contenedor compiladas con cualquier herramienta apta para
compilar imágenes de contenedor, siempre que respeten el contrato del contenedor.
En particular, tu código debe escuchar las solicitudes HTTP en el puerto que define la variable de entorno PORT. Cloud Run inserta de manera automática esta variable de entorno PORT en tu contenedor.
Antes de comenzar
Necesitas Google Cloud CLI 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 lo siguiente:
gcloud artifacts repositories create REPOSITORY \ --repository-format=docker \ --location=LOCATION \ --description="DESCRIPTION" \ --immutable-tags \ --asyncPuedes configurar Docker para obtener acceso a Artifact Registry mediante el auxiliar de credenciales de gcloud CLI:
Reemplazagcloud auth configure-docker LOCATION-docker.pkg.dev
LOCATIONpor el nombre de la región de tu repositorio de contenedores, por ejemplo,us-west2.
Compila con Dockerfile
Antes de compilar las fuentes en una imagen de contenedor (“alojamiento en contenedores”) de forma local mediante Docker o Cloud Build, necesitas que haya un Dockerfile junto con tus fuentes. Las muestras de Hello World contienen aplicaciones de muestra y Dockerfiles en muchos lenguajes populares.
Si usas Dockerfiles, puedes usar cualquiera de los siguientes métodos para compilar:
- Compila mediante Cloud Build
- Compila de forma local mediante Docker
Compila mediante Cloud Build
Puedes compilar tu imagen con Google Cloud Cloud Build de la siguiente manera:
Navega a la carpeta que contiene tus fuentes y el Dockerfile.
Ejecuta este comando:
gcloud builds submit --tag IMAGE_URL
Reemplaza
IMAGE_URLpor una referencia a la imagen de contenedor, comous-docker.pkg.dev/cloudrun/container/hello:latest. Si usas Artifact Registry, el repositorio REPO_NAME debe estar creado. La URL sigue el formato deLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
Si deseas obtener sugerencias para mejorar el rendimiento de la compilación, consulta Acelera las compilaciones.
Compila de forma local y envía con Docker
Si tienes Docker instalado de manera local, puedes usar docker builden lugar de usar Cloud Build o los paquetes de compilación de Google Cloud.
Para compilar tu imagen de contenedor mediante Docker, sigue estos pasos:
Navega a la carpeta que contiene tus fuentes y el
Dockerfile.Ejecuta este comando:
docker build . --tag IMAGE_URL
Reemplaza
IMAGE_URLpor una referencia a la imagen de contenedor, comous-docker.pkg.dev/cloudrun/container/hello:latest. Si usas Artifact Registry, el repositorio REPO_NAME debe estar creado. La URL sigue el formato deLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.Ten en cuenta que, si usas una Mac con Apple Silicon, debes especificar
--platform linux/amd64en la línea de comandos.Envía la imagen del contenedor a un registro de contenedores compatible:
docker push IMAGE_URL
Reemplaza
IMAGE_URLpor una referencia a la imagen de contenedor, comous-docker.pkg.dev/cloudrun/container/hello:latest. Si usas Artifact Registry, el repositorio REPO_NAME debe estar creado. La URL sigue el formato deLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
Para excluir archivos locales de este proceso, sigue las
.dockerignore instrucciones del archivo de configuración.
Compila con los paquetes de compilación de Google Cloud
Paquetes de compilación de Google Cloud es un conjunto de Buildpacks compatibles con CNCF que compilan código fuente en imágenes de contenedor diseñadas para ejecutarse en Google Cloud plataformas de contenedores, incluido Cloud Run.
Para obtener una lista de los lenguajes compatibles, consulta la documentación de paquetes de compilación de Google Cloud.
Compila con los paquetes de compilación de Google Cloud mediante Cloud Build
Sigue estos pasos para compilar con los paquetes de compilación de Google Cloud:
Navega a la carpeta que contiene tus fuentes.
Ejecuta el siguiente comando:
gcloud builds submit --pack image=IMAGE_URL
Reemplaza
IMAGE_URLpor una referencia a la imagen de contenedor, comous-docker.pkg.dev/cloudrun/container/hello:latest. Si usas Artifact Registry, el repositorio REPO_NAME debe estar creado. La URL sigue el formato deLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.Espera a que se complete la compilación.
Compila con los paquetes de compilación de Google Cloud mediante la línea de comandos de pack
Sigue estos pasos para compilar mediante el comando pack:
Si aún no lo hiciste, instala Docker.
Si aún no lo hiciste, instala
pack.Navega a la carpeta que contiene tus fuentes.
Ejecuta el siguiente comando para compilar y enviar a tu registro de contenedores compatible:
pack build --publish IMAGE_URL
Reemplaza
IMAGE_URLpor una referencia a la imagen de contenedor, comous-docker.pkg.dev/cloudrun/container/hello:latest. Si usas Artifact Registry, el repositorio REPO_NAME debe estar creado. La URL sigue el formato deLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.Espera a que finalice
pack.
Para obtener más información, lee las instrucciones provistas en Compila una aplicación.
¿Qué sigue?
Para implementar en Cloud Run tus contenedores compilados, sigue los pasos de Implementa servicios.
Obtén información para crear y actualizar trabajos de Cloud Run a partir de tu imagen de contenedor compilada.
Después de compilar el contenedor, puedes realizar pruebas locales antes de implementar en Cloud Run. Consulta Prueba 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 compilado, consulta cómo ejecutar el trabajo como único, según un programa o como parte de un flujo de trabajo.
Para automatizar las compilaciones y las implementaciones de tus servicios de Cloud Run mediante activadores de compilación de Cloud Build, configura la implementación continua.
Con el fin de realizar compilaciones de contenedores óptimas para la aplicación de Java, consulta Compila contenedores de Java con Jib.