Acelerar las compilaciones con imágenes de caché

Puedes aprovechar las imágenes de caché de los buildpacks para reutilizar los resultados de una compilación anterior. De esta forma, se reduce la duración total del proceso de creación de imágenes con los buildpacks de Google Cloud, incluso cuando creas imágenes en entornos efímeros, como Cloud Build.

Los pasos que se indican a continuación en esta guía se centran en las compilaciones remotas con Cloud Build. Para las compilaciones locales, consulta las instrucciones de la imagen de caché y la página de referencia del comando pack.

Usar imágenes de caché con Cloud Build

Debes crear un archivo de configuración de compilación, como cloudbuild.yaml, para habilitar las imágenes de caché de buildpacks en Cloud Build. El archivo de configuración de compilación 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 "imagen de caché" para las compilaciones posteriores.

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

Crear 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 utilice la CLI pack para crear tu imagen.

En el siguiente ejemplo cloudbuild.yaml, la compilación crea una imagen para tu aplicación o función mediante 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 

Sustituye:

  • LOCATION con el nombre de la región de tu repositorio de contenedores. Ejemplo: us-west2
  • PROJECT_ID por el ID de tu Google Cloud proyecto.
  • REPO_NAME con el nombre de tu repositorio de Docker.
  • IMAGE_NAME con el nombre de la imagen del contenedor de tu aplicación o función.
  • CACHE_IMAGE_NAME con 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 pack buildreferencia de comandos.

Compilación remota con imágenes de caché

Para ejecutar una compilación, incluye la marca de comando --config y especifica el 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 Compilar una aplicación o Compilar una función.