Nesta página, explicamos como usar builders de contribuições da comunidade e builders personalizados no Cloud Build. A comunidade de desenvolvedores do Cloud Build fornece builders de código aberto que podem ser usados para executar tarefas. Se a tarefa que você quer executar requer recursos que não são fornecidos por uma imagem existente, você pode criar sua própria imagem personalizada e usá-la em uma etapa de versão. Para saber mais sobre os diferentes tipos de builders, consulte Cloud Builders.
Se você não estiver familiarizado com o Cloud Build, leia as guias de início rápido e a visão geral da configuração da compilação primeiro.
Como usar builders de contribuições da comunidade
Imagens pré-criadas não estão disponíveis para builders de contribuições da comunidade. Para usar esses builders em um arquivo de configuração do Cloud Build, primeiro é preciso criar a imagem e enviá-la para o Container Registry no projeto.
Para usar um builder de contribuições da comunidade:
Crie e envie o builder:
Navegue até o diretório raiz do projeto.
Clone o repositório cloud-builders-community:
git clone https://github.com/GoogleCloudPlatform/cloud-builders-community.git
Navegue até a imagem do builder que você quer usar, em que builder-name é o diretório que contém o builder:
cd cloud-builders-community/builder-name
Envie o builder para seu projeto:
gcloud builds submit .
Volte para o diretório raiz do projeto:
cd ../..
Remova o repositório do diretório raiz:
rm -rf cloud-builders-community/
No arquivo de configuração do Cloud Build, use o builder em uma etapa de versão:
YAML
steps: - name: 'gcr.io/project-id/builder-name' args: ['arg1', 'arg2', ...] ...
JSON
{ "steps": [ { "name": "gcr.io/project-id/builder-name", "args": [ "arg1", "arg2", ... ] ... } ] }
Use o arquivo de configuração da versão para iniciar a criar manualmente ou criar usando gatilhos.
Para ver exemplos sobre o uso de builders de contribuições da comunidade, consulte Implantar no Firebase e Criar imagens de VM usando o Packer.
Como criar um builder personalizado
Se a tarefa que você quer executar requer recursos que não são fornecidos por uma imagem pública, um builder compatível ou um builder de contribuições da comunidade, é possível criar sua própria imagem e usá-la em uma etapa de build.
Alguns exemplos de quando é possível usar uma imagem de builder personalizado são:
- Fazer o download de código-fonte ou pacotes de locais externos.
- Usar uma cadeia de ferramentas externa.
- Armazenar as bibliotecas necessárias em cache.
- Pré-criar o código-fonte (com o Cloud Build responsável apenas por empacotar a versão em uma imagem).
Como qualquer outro, um builder personalizado é executado com o código-fonte ativado em
/workspace
e com um diretório de trabalho em /workspace
. Todos os arquivos deixados
em /workspace
por uma determinada etapa de versão estão disponíveis para outras etapas de versão.
O builder personalizado pode enviar ou extrair de um repositório no
Container Registry (hospedado em gcr.io/$PROJECT-NAME/
)
para que sua conta de serviço do Build tenha acesso.
As etapas a seguir mostram como criar e usar um builder personalizado com um exemplo de
Dockerfile
:
Crie uma imagem de builder personalizada:
Crie o
Dockerfile
para o builder personalizado. O código a seguir mostra um exemplo deDockerfile
:FROM alpine RUN apk add curl CMD curl https://httpbin.org/ip -s > myip.txt; echo "*** My IP is: $(cat myip.txt)"
Crie e envie o builder personalizado para o Container Registry no seu projeto, substituindo os valores de project-id e image-name:
gcloud builds submit --tag gcr.io/project-id/image-name
Use a imagem de builder personalizada no Cloud Build especificando o builder no campo
name
de uma etapa de build:YAML
steps: - name: 'gcr.io/project-id/image-name' id: Determine IP of this build worker
JSON
{ "steps": [ { "name": "gcr.io/project-id/image-name", "id": "Determine IP of this build worker" } ] }
Use o arquivo de configuração da versão para iniciar a criar manualmente ou criar usando gatilhos.
A seguir
- Saiba como executar scripts bash em etapas de versão.
- Saiba como configurar a ordem das etapas de versão.
- Saiba como gravar um arquivo de configuração de versão básico.