Cloud builders

Cloud builders são imagens de contêiner com linguagens e ferramentas comuns instaladas. É possível configurar o Cloud Build para executar um comando específico no contexto desses builders.

Nesta página, descrevemos os tipos de builder que podem ser usados com o Cloud Build.

Imagens disponíveis publicamente

O Cloud Build permite usar qualquer imagem disponível publicamente para executar as tarefas. Para usar uma imagem, especifique o URL da imagem no campo name do arquivo de configuração. Use o campo args para especificar os comandos que você quer executar na imagem. O campo args de uma etapa de build recebe uma lista de argumentos e os transmite para a imagem referenciada pelo campo name.

O snippet de código a seguir mostra como usar a imagem pública ubuntu do Docker Hub e executar um comando nessa imagem:

steps:
- name: 'ubuntu'
  args: ['echo', 'hello world']

Veja outro snippet de código de exemplo que usa a imagem do scanner de código aberto Black Duck para o Cloud Build do Google Cloud Console Launcher:

steps:
- name: launcher.gcr.io/blackduck-public/blackducksoftware-containerbuilder-scanner
  ...

Para mais exemplos de como usar imagens disponíveis publicamente do Docker Hub em suas tarefas, consulte Como criar aplicativos Node.js e Como criar aplicativos Go.

Imagens do builder compatíveis fornecidas pelo Cloud Build

O Cloud Build fornece e mantém imagens pré-criadas que podem ser consultadas no arquivo de configuração para executar suas tarefas. É possível encontrar essas imagens pré-criadas no seguinte local:

gcr.io/cloud-builders/...

O código-fonte desses criadores está disponível no repositório GitHub dos criadores de nuvem.

Para exemplos de como usar imagens pré-criadas compatíveis, consulte Como criar imagens de contêiner e Como implantar no Cloud Run.

A tabela a seguir lista alguns exemplos de imagens de builders compatíveis:

Builder Nome Exemplo
bazel gcr.io/cloud-builders/bazel exemplo do bazel
docker gcr.io/cloud-builders/docker exemplo do docker
git gcr.io/cloud-builders/git exemplo do git
gcloud gcr.io/cloud-builders/gcloud exemplo do gcloud
gke-deploy gcr.io/cloud-builders/gke-deploy exemplo do gke-deploy
gradle gcr.io/cloud-builders/gradle exemplo de gradle
maven gcr.io/cloud-builders/mvn exemplo de maven
A lista completa de builders compatíveis com o Cloud Build.

Builders fornecidos pela comunidade

A comunidade de desenvolvedores do Cloud Build fornece builders de código aberto que podem ser usados para executar tarefas. Não há imagens pré-criadas não disponíveis para esses builders. Para usá-los, faça o download do código-fonte no repositório GitHub da comunidade de cloud builders e, em seguida, crie a imagem. Para um exemplo de como criar um builder contribuído pela comunidade e usá-lo para suas tarefas, consulte Como criar imagens de VM usando o Packer.

A tabela a seguir lista alguns exemplos de criadores contribuídos pela comunidade:

Builder Descrição
docker-compose Executa testes de integração em imagens do Docker.
remote-builder Executa sua etapa de construção em uma máquina virtual do Compute Engine configurável.
packer Automatiza a criação de imagens de máquinas usando o Packer
helm Gerencia pacotes do Kubernetes usando Helm.
pack Executa a etapa de versão usando o Cloud Native Buildpack especificado.
kaniko Executa a etapa de versão usando kaniko.
A lista completa de builders contribuídos pela comunidade para o Cloud Build.

Os criadores fornecidos pela comunidade são mantidos pela comunidade de código aberto na comunidade de criadores de nuvem. O Cloud Build não mantém oficialmente esses builders. Para informações sobre como contribuir com um criador, consulte a página do GitHub da comunidade de criadores de nuvem.

Como escrever seu próprio builder personalizado

Você pode gerar seu próprio criador personalizado para usar nas versões. Um criador personalizado é uma imagem de contêiner que o Cloud Build extrai e executa com sua fonte. O builder personalizado pode executar qualquer script ou binário dentro do contêiner. Ou seja, ele pode fazer tudo que um contêiner faz. Para instruções sobre como criar um builder personalizado, consulte Como criar etapas de um build personalizado.

A seguir