Acelere as compilações com imagens de cache

Pode tirar partido das imagens em cache dos buildpacks para reutilizar os resultados de uma compilação anterior. Isto reduz a duração geral do tempo quando cria imagens com os buildpacks do Google Cloud, incluindo quando cria imagens em ambientes efémeros, como o Cloud Build.

Os passos seguintes neste guia focam-se em compilações remotas com o Cloud Build. Para compilações locais, consulte as instruções para imagens em cache e a página de packreferência de comandos.

Usar imagens de cache com o Cloud Build

Tem de criar um ficheiro de configuração de compilação, por exemplo, cloudbuild.yaml, para ativar as imagens da cache dos buildpacks no Cloud Build. O ficheiro de configuração da compilação indica à CLI pack que publique uma imagem de compilação num repositório remoto especificado. Esta imagem de compilação é, então, usada como a sua "imagem de cache" para compilações subsequentes.

Tenha em atenção que a primeira compilação que executar com o novo ficheiro de configuração de compilação usa o comando pack para criar e, em seguida, enviar a cache de imagens de compilação inicial para o seu repositório. As melhorias no desempenho da compilação só são visíveis depois de a imagem da cache inicial estar disponível para as suas compilações.

Criar um ficheiro de configuração de compilação

Para definir um ficheiro de configuração do Cloud Build, tem de escrever um ficheiro YAML com um passo de compilação que use a CLI pack para criar a sua imagem.

No exemplo seguinte cloudbuild.yaml, a compilação cria uma imagem para a sua aplicação ou função através de buildpacks, cria a imagem de cache de compilação inicial e envia-a 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 

Substituição:

  • LOCATION com o nome da região do seu repositório de contentores. Exemplo: us-west2
  • PROJECT_ID com o ID do seu Google Cloud projeto.
  • REPO_NAME com o nome do seu repositório do Docker.
  • IMAGE_NAME com o nome da imagem do contentor da sua aplicação ou função.
  • CACHE_IMAGE_NAME com o nome da imagem da cache de compilação.

Consulte também os outros argumentos suportados que pode definir no ficheiro de configuração de compilação na referência de comandos pack build.

Compilar remotamente com imagens da cache

Para executar uma compilação, inclua a flag de comando --config e especifique o seu ficheiro de configuração. Por exemplo, para usar um ficheiro com o nome cloudbuild.yaml, pode executar o seguinte comando:

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

Para mais informações sobre compilações remotas, consulte os artigos Crie uma aplicação ou Crie uma função.