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.
Seu builder personalizado pode enviar por push ou pull de um repositório em
Container Registry (hospedado em gcr.io/$PROJECT-NAME/
)
à qual sua conta de serviço de build tem
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.