Acelerar builds com imagens em cache

Aproveite as imagens de cache dos pacotes de build para reutilizar os resultados de uma versão anterior. Isso reduz a duração geral da criação de imagens com os pacotes de criação do Google Cloud, inclusive durante a criação em ambientes temporários, como o Cloud Build.

As etapas a seguir neste guia se concentram em builds remotos com o Cloud Build. Para builds locais, consulte as instruções sobre imagem de cache e a referência do comando pack.

Como usar imagens em cache com o Cloud Build

É preciso criar um arquivo de configuração de build, por exemplo, cloudbuild.yaml, para ativar imagens de cache de buildpacks no Cloud Build. Seu arquivo de configuração de versão instrui a CLI pack a publicar uma imagem de versão em um repositório remoto especificado. Essa imagem da versão é usada como "imagem do cache" para versões subsequentes.

A primeira build executada com o novo arquivo de configuração da versão usa o comando pack para criar e enviar o cache da imagem da build inicial para o repositório. As melhorias no desempenho do build só serão vistas depois que a imagem de cache inicial estiver disponível para os builds.

Como criar um arquivo de configuração de build

Para definir um arquivo de configuração do Cloud Build, escreva um arquivo YAML com uma etapa de criação que use a CLI pack para criar sua imagem.

No exemplo a seguir, cloudbuild.yaml, o build cria uma imagem para o aplicativo ou função usando pacotes de build, cria a imagem de cache de build inicial e a envia para um repositório:

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

Substitua:

  • LOCATION pelo nome da região do repositório de contêineres. Exemplo: us-west2
  • PROJECT_ID pelo ID do seu projeto do Google Cloud.
  • REPO_NAME pelo nome do repositório do Docker.
  • IMAGE_NAME pelo nome do aplicativo ou imagem de contêiner de função.
  • CACHE_IMAGE_NAME pelo nome da imagem de cache de build.

Veja também outros recursos compatíveis que podem ser definidos no arquivo de configuração do build na referência do comando pack build.

Como compilar remotamente com imagens de cache

Para executar um build, inclua a sinalização de comando --config e especifique seu arquivo de configuração. Por exemplo, para usar um arquivo chamado cloudbuild.yaml, execute:

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

Para mais informações sobre builds remotos, consulte Criar um aplicativo ou Criar uma função.