Crear fuentes para contenedores

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

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:

  1. Desplázate hasta la carpeta que contiene tus fuentes y el archivo Dockerfile.

  2. 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 formato LOCATION-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:

  1. Ve a la carpeta que contiene tus fuentes y Dockerfile.

  2. 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 formato LOCATION-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.

  3. 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 formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .

Para excluir archivos locales de este proceso, sigue las instrucciones del .dockerignorearchivo 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:

  1. Ve a la carpeta que contiene tus fuentes.

  2. 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 formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .

  3. 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:

  1. Si aún no lo has hecho, instala Docker.

  2. Si aún no lo has hecho, instala pack.

  3. Ve a la carpeta que contiene tus fuentes.

  4. 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 formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .

  5. Espera a que termine pack.

Para obtener más información, consulta las instrucciones de la sección Crear una aplicación.

Siguientes pasos