Acelera compilaciones con imágenes almacenadas en caché

Puedes aprovechar las imágenes de caché de los paquetes de compilación para volver a usar los resultados de una compilación anterior. Esto reduce el tiempo total que compilas imágenes con los paquetes de compilación de Google Cloud, incluso cuando compilas imágenes en entornos efímeros, como Cloud Build.

Los siguientes pasos de esta guía se enfocan en las compilaciones remotas con Cloud Build. En el caso de las compilaciones locales, consulta las instrucciones de la imagen de caché y la página de referencia del comando pack.

Usa imágenes de caché con Cloud Build

Debes crear un archivo de configuración de compilación, por ejemplo, cloudbuild.yaml, para habilitar las imágenes en caché de paquetes de compilación en Cloud Build. El archivo de configuración de compilación le indica a la CLI de pack que publique una imagen de compilación en un repositorio remoto especificado. Esta imagen de compilación se usa como tu “imagen de caché” para compilaciones posteriores.

Ten en cuenta que la primera compilación que ejecutes con tu nuevo archivo de configuración de compilación usará el comando pack para crear y, luego, enviar la caché de imágenes de compilación inicial a tu repositorio. Las mejoras en el rendimiento de la compilación se ven solo después de que la imagen de caché inicial esté disponible para tus compilaciones.

Crea un archivo de configuración de compilación

Para definir un archivo de configuración de Cloud Build, debes escribir un archivo YAML con un paso de compilación que use la CLI de pack para crear la imagen.

En el siguiente ejemplo cloudbuild.yaml, la compilación crea una imagen para tu aplicación o función con paquetes de compilación, crea la imagen de caché de compilación inicial y la envía a un repositorio:

options:
  logging: CLOUD_LOGGING_ONLY
  pool: {}
projectId: PROJECT_ID
steps:
- name: gcr.io/k8s-skaffold/pack
  entrypoint: pack
  args:
  - build
  - LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/IMAGE_NAME
  - --builder
  - gcr.io/buildpacks/builder:latest
  - --cache-image
  - LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/CACHE_IMAGE_NAME:latest
  - --publish 

Reemplaza lo siguiente:

  • LOCATION por el nombre de la región de tu repositorio de contenedores. Ejemplo: us-west2
  • PROJECT_ID por el ID del proyecto de Google Cloud.
  • REPO_NAME por el nombre de tu repositorio de Docker.
  • IMAGE_NAME por el nombre de la imagen de contenedor de la aplicación o función.
  • Reemplaza CACHE_IMAGE_NAME por el nombre de tu imagen de caché de compilación.

Consulta también los otros argumentos admitidos que puedes definir en el archivo de configuración de compilación en la referencia del comando pack build.

Compila de forma remota con imágenes almacenadas en caché

Para ejecutar una compilación, incluye la marca de comando --config y especifica tu archivo de configuración. Por ejemplo, para usar un archivo llamado cloudbuild.yaml, puedes ejecutar lo siguiente:

gcloud builds submit --config cloudbuild.yaml --pack image=example-docker.pkg.dev/my-project-id/repo/example-image

Para obtener más información sobre las compilaciones remotas, consulta Cómo compilar una aplicación o Cómo compilar una función.