Esta página descreve como criar um ficheiro de configuração de compilação que pode usar para iniciar uma compilação no Cloud Build.
Um ficheiro de configuração de compilação define os campos necessários para que o Cloud Build execute as suas tarefas. Precisa de um ficheiro de configuração de compilação se estiver a iniciar compilações com a ferramenta de linha de comandos gcloud ou acionadores de compilação. Pode escrever o ficheiro de configuração de compilação com a sintaxe YAML ou JSON.
Antes de começar
Leia o artigo Vista geral da configuração de compilação para saber mais sobre os campos que pode incluir num ficheiro de configuração de compilação.
Criar uma configuração de compilação
Os passos seguintes explicam como criar um ficheiro de configuração de compilação básico. Cada um dos campos no ficheiro de configuração de compilação define uma parte da tarefa que quer realizar. O único campo obrigatório no ficheiro de configuração de compilação é o campo name para um passo. Todos os outros campos são opcionais.
YAML
Crie o ficheiro de configuração de compilação. No diretório raiz do projeto, crie um ficheiro com o nome
cloudbuild.yaml. Este é o ficheiro de configuração do Cloud Build.Adicione o campo de etapas. A secção
stepsno ficheiro de configuração de compilação contém os passos de compilação que quer que o Cloud Build execute.steps:Adicione o primeiro passo. Em
steps:, adicione um camponamee direcione-o para uma imagem de contentor para executar a sua tarefa. O Cloud Build e a respetiva comunidade de programadores oferecem várias imagens de contentores com ferramentas e idiomas comuns instalados. Pode usar qualquer uma destas imagens (também denominadas criadores de nuvem) ou qualquer imagem disponível publicamente num passo de compilação. Para obter informações sobre os diferentes tipos de imagens de contentores que pode usar num passo de compilação, consulte os criadores do Google Cloud.O fragmento seguinte mostra um passo de compilação com um
dockerbuildergcr.io/cloud-builders/docker, que é uma imagem de contentor que executa o Docker.steps: - name: 'gcr.io/cloud-builders/docker'Adicione argumentos de passos. O campo
argsde um passo recebe uma lista de argumentos e transmite-os ao criador referenciado pelo camponame. Se o criador no camponametiver um ponto de entrada, osargsna lista são usados para aceder a esse ponto de entrada. Se o criador no camponamenão tiver um ponto de entrada, o primeiro elemento emargsé usado como ponto de entrada.No exemplo seguinte:
buildé o ponto de entrada para o criador do Docker na nuvem.-té a etiqueta Docker.us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-imageé o nome da imagem a ser criada no Artifact Registry. O passo de compilação usa a substituição predefinida para o ID do projeto. Por isso, este valor é substituído automaticamente no momento da compilação..é a localização do código-fonte, que indica que o código-fonte está no diretório de trabalho atual.steps: - name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', 'us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-image', '.']
Adicione mais passos. Pode adicionar qualquer número de passos de compilação ao ficheiro de configuração de compilação incluindo campos
nameadicionais e direcionando-os para cloud builders.O fragmento seguinte inclui mais dois passos para o ficheiro de configuração da compilação:
- Um passo de compilação do Docker para invocar o comando
docker pushpara enviar a imagem criada no passo anterior para o Artifact Registry. Um passo de compilação para o comando Google Cloud SDK com o ponto de entrada especificado, que cria uma instância do Compute Engine a partir da imagem do contentor no Artifact Registry.
gcloudO campoenvé incluído para especificar a zona e a região do Compute Engine.- name: 'gcr.io/cloud-builders/docker' args: ['push', 'us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-image'] - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' entrypoint: 'gcloud' args: ['compute', 'instances', 'create-with-container', 'my-vm-name', '--container-image', 'us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-image'] env: - 'CLOUDSDK_COMPUTE_REGION=us-central1' - 'CLOUDSDK_COMPUTE_ZONE=us-central1-a'
- Um passo de compilação do Docker para invocar o comando
Inclua campos de configuração de compilação adicionais. Pode configurar a criação de forma mais detalhada incluindo campos como
machineType,tagsoutimeout. Para ver a lista completa de campos que pode incluir no ficheiro de configuração de compilação, consulte o artigo Vista geral da configuração de compilação.No exemplo seguinte, o
gcr.io/google.com/cloudsdktool/cloud-sdkpasso de compilação excede o tempo limite após 240 segundos.- name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' entrypoint: 'gcloud' timeout: 240s args: ['compute', 'instances', 'create-with-container', 'my-vm-name', '--container-image', 'us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-image'] env: - 'CLOUDSDK_COMPUTE_REGION=us-central1' - 'CLOUDSDK_COMPUTE_ZONE=us-central1-a'Veja o seguinte fragmento para o exemplo completo de um ficheiro de configuração de compilação básico:
No exemplo, as imagens de contentores são armazenadas no Artifact Registry. Se a sua compilação produzir artefactos que não sejam contentores, pode armazená-los no Cloud Storage através do campo
artifacts. Para ver instruções sobre como o fazer, consulte o artigo Armazenar imagens e artefactos.
JSON
Crie o ficheiro de configuração de compilação. No diretório raiz do projeto, crie um ficheiro com o nome
cloudbuild.json. Este é o ficheiro de configuração do Cloud Build.Adicione o campo de etapas. A secção
stepsno ficheiro de configuração de compilação contém os passos de compilação que quer que o Cloud Build execute.{ "steps": }Adicione o primeiro passo. Em
steps:, adicione um camponamee direcione-o para uma imagem de contentor para executar a sua tarefa. O Cloud Build e a respetiva comunidade de programadores oferecem várias imagens de contentores com ferramentas e idiomas comuns instalados. Pode usar qualquer uma destas imagens (também denominadas criadores de nuvem) ou qualquer imagem disponível publicamente num passo de compilação. Para obter informações sobre os diferentes tipos de imagens de contentores que pode usar num passo de compilação, consulte os criadores do Google Cloud.O fragmento seguinte mostra um passo de compilação com um
dockerbuildergcr.io/cloud-builders/docker, que é uma imagem de contentor que executa o Docker.{ "steps": [ { "name": "gcr.io/cloud-builders/docker" } ] }Adicione argumentos de passos. O campo
argsde um passo recebe uma lista de argumentos e transmite-os ao criador referenciado pelo camponame. Se o criador no camponametiver um ponto de entrada, osargsna lista são usados para aceder a esse ponto de entrada. Se o criador no camponamenão tiver um ponto de entrada, o primeiro elemento emargsé usado como ponto de entrada.No exemplo seguinte:
buildé o ponto de entrada para o criador do Docker na nuvem.-té a etiqueta Docker.us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-imageé o nome da imagem a ser criada no Artifact Registry. O passo de compilação usa a substituição predefinida para o ID do projeto. Por isso, este valor é substituído automaticamente no momento da compilação..é a localização do código-fonte, que indica que o código-fonte está no diretório de trabalho atual.{ "steps": [ { "name": "gcr.io/cloud-builders/docker", "args": [ "build", "-t", "us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/myimage", "." ] } ] }
Adicione mais passos. Pode adicionar qualquer número de passos de compilação ao ficheiro de configuração de compilação incluindo campos
nameadicionais e direcionando-os para cloud builders.O fragmento seguinte inclui mais dois passos para o ficheiro de configuração da compilação:
- Um passo de compilação do Docker para invocar o comando
docker pushpara enviar a imagem criada no passo anterior para o Artifact Registry. Um passo de compilação para o comando Google Cloud SDK com o ponto de entrada especificado, que cria uma instância do Compute Engine a partir da imagem do contentor no Artifact Registry.
gcloudO campoenvé incluído para especificar a zona e a região do Compute Engine.{ "name": "gcr.io/cloud-builders/docker", "args": [ "push", "us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/myimage" ] }, { "name": "gcr.io/google.com/cloudsdktool/cloud-sdk", "entrypoint": "gcloud", "args": [ "compute", "instances", "create-with-container", "my-vm-name", "--container-image", "us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/myimage" ], "env": [ "CLOUDSDK_COMPUTE_REGION=us-central1", "CLOUDSDK_COMPUTE_ZONE=us-central1-a" ] }
- Um passo de compilação do Docker para invocar o comando
Inclua campos de configuração de compilação adicionais. Pode configurar a criação de forma mais detalhada incluindo campos como
machineType,tagsoutimeout. Para ver a lista completa de campos que pode incluir no ficheiro de configuração de compilação, consulte o artigo Vista geral da configuração de compilação.No exemplo seguinte, o
gcr.io/google.com/cloudsdktool/cloud-sdkpasso de compilação excede o tempo limite após 240 segundos.{ "name": "gcr.io/google.com/cloudsdktool/cloud-sdk", "entrypoint": "gcloud", "timeout": "240s", "args": [ "compute", "instances", "create-with-container", "my-vm-name", "--container-image", "us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/myimage" ], "env": [ "CLOUDSDK_COMPUTE_REGION=us-central1", "CLOUDSDK_COMPUTE_ZONE=us-central1-a" ] }Veja o seguinte fragmento para o exemplo completo de um ficheiro de configuração de compilação básico:
No exemplo, as imagens de contentores são armazenadas no Artifact Registry. Se a sua compilação produzir artefactos que não sejam contentores, pode armazená-los no Cloud Storage através do campo
artifacts. Para ver instruções sobre como o fazer, consulte o artigo Armazenar imagens e artefactos.
O que se segue?
- Saiba como executar as suas compilações manualmente e usando acionadores através do ficheiro de configuração de compilação.
- Saiba como escrever configurações de compilação para incluir dependências e criar, testar e implementar artefactos.