Questa pagina descrive come creare un file di configurazione di compilazione da utilizzare per avviare una build su Cloud Build.
Un file di configurazione di compilazione definisce i campi necessari a Cloud Build per eseguire le tue attività. Se inizi a creare build utilizzando lo strumento a riga di comando gcloud
o i trigger di build, avrai bisogno di un file di configurazione. Puoi scrivere
il file di configurazione della build utilizzando la sintassi YAML o JSON.
Prima di iniziare
Per saperne di più sui campi che puoi includere in un file di configurazione di build, leggi Panoramica della configurazione di build.
Creazione di una configurazione di build
I passaggi seguenti spiegano come creare un file di configurazione della build di base. Ciascuno dei campi nel file di configurazione della build definisce una parte dell'attività che vuoi eseguire. L'unico campo obbligatorio nel file di configurazione della build è il campo name
per un passaggio. Tutti gli altri campi sono facoltativi.
YAML
Crea il file di configurazione della build. Nella directory root del progetto, crea un file denominato
cloudbuild.yaml
. Questo è il file di configurazione di Cloud Build.Aggiungi il campo Passaggi. La sezione
steps
del file di configurazione di compilazione contiene i passaggi di build che vuoi che Cloud Build esegua.steps:
Aggiungi il primo passaggio. In
steps:
, aggiungi un camponame
e puntalo a un'immagine container per eseguire l'attività. Cloud Build e la sua community di sviluppatori forniscono diverse immagini container in cui sono installati strumenti e linguaggi comuni. Puoi utilizzare una qualsiasi di queste immagini (chiamate anche Cloud Builder) o qualsiasi immagine disponibile pubblicamente in un passaggio di build. Per informazioni sui diversi tipi di immagini container che puoi utilizzare in un passaggio di build, consulta Cloud Builder.Lo snippet seguente mostra un passaggio di build con un
docker
Buildergcr.io/cloud-builders/docker
, che è un'immagine container che esegue Docker.steps: - name: 'gcr.io/cloud-builders/docker'
Aggiungi argomenti dei passaggi. Il campo
args
di un passaggio accetta un elenco di argomenti e li passa al generatore a cui fa riferimento il camponame
. Se il generatore nel camponame
include un punto di ingresso, vengono utilizzatiargs
nell'elenco per accedere a quel punto. Se il generatore nel camponame
non dispone di un punto di ingresso, il primo elemento diargs
viene utilizzato come punto di ingresso.Nell'esempio seguente:
build
è il punto di ingresso di Docker Cloud Builder.-t
è il tag Docker.us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-image
è il nome dell'immagine da creare in Artifact Registry. Il passaggio di build utilizza la sostituzione predefinita per l'ID progetto, pertanto questo valore viene sostituito automaticamente al momento della creazione..
è la posizione del codice sorgente, che indica che il codice sorgente si trova nella directory di lavoro attuale.steps: - name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', 'us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-image', '.']
Aggiungi altri passaggi. Puoi aggiungere un numero qualsiasi di passi di build al file di configurazione della build includendo altri campi
name
e indirizzandoli a cloud builder.Lo snippet seguente include altri due passaggi per il file di configurazione della build:
- un passaggio di build Docker per richiamare il comando
docker push
in modo da eseguire il push della build dell'immagine nel passaggio precedente ad Artifact Registry. un passaggio di build per il comando Google Cloud SDK con l'entrypoint
gcloud
specificato, che crea un'istanza Compute Engine dall'immagine container in Artifact Registry. Il campoenv
è incluso per specificare la zona e la regione di 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'
- un passaggio di build Docker per richiamare il comando
Includi altri campi di configurazione della build. Puoi configurare ulteriormente la build includendo campi come
machineType
,tags
otimeout
. Per l'elenco completo dei campi che puoi includere nel file di configurazione della build, consulta la Panoramica della configurazione di build.Nell'esempio seguente, il passaggio della build
gcr.io/google.com/cloudsdktool/cloud-sdk
si verifica dopo 240 secondi.- 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'
Consulta lo snippet seguente per l'esempio completo di file di configurazione della build di base:
In questo esempio, le immagini container sono archiviate in Artifact Registry. Se la build produce artefatti non containerizzati, puoi archiviarli in Cloud Storage utilizzando il campo
artifacts
. Per istruzioni su come eseguire questa operazione, consulta la sezione Archiviazione di immagini e elementi.
JSON
Crea il file di configurazione della build. Nella directory root del progetto, crea un file denominato
cloudbuild.json
. Questo è il file di configurazione di Cloud Build.Aggiungi il campo Passaggi. La sezione
steps
del file di configurazione di compilazione contiene i passaggi di build che vuoi che Cloud Build esegua.{ "steps": }
Aggiungi il primo passaggio. In
steps:
, aggiungi un camponame
e puntalo a un'immagine container per eseguire l'attività. Cloud Build e la sua community di sviluppatori forniscono diverse immagini container in cui sono installati strumenti e linguaggi comuni. Puoi utilizzare una qualsiasi di queste immagini (chiamate anche Cloud Builder) o qualsiasi immagine disponibile pubblicamente in un passaggio di build. Per informazioni sui diversi tipi di immagini container che puoi utilizzare in un passaggio di build, consulta Cloud Builder.Lo snippet seguente mostra un passaggio di build con un
docker
Buildergcr.io/cloud-builders/docker
, che è un'immagine container che esegue Docker.{ "steps": [ { "name": "gcr.io/cloud-builders/docker" } ] }
Aggiungi argomenti dei passaggi. Il campo
args
di un passaggio accetta un elenco di argomenti e li passa al generatore a cui fa riferimento il camponame
. Se il generatore nel camponame
include un punto di ingresso, vengono utilizzatiargs
nell'elenco per accedere a quel punto. Se il generatore nel camponame
non dispone di un punto di ingresso, il primo elemento diargs
viene utilizzato come punto di ingresso.Nell'esempio seguente:
build
è il punto di ingresso di Docker Cloud Builder.-t
è il tag Docker.us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-image
è il nome dell'immagine da creare in Artifact Registry. Il passaggio di build utilizza la sostituzione predefinita per l'ID progetto, pertanto questo valore viene sostituito automaticamente al momento della creazione..
è la posizione del codice sorgente, che indica che il codice sorgente si trova nella directory di lavoro attuale.{ "steps": [ { "name": "gcr.io/cloud-builders/docker", "args": [ "build", "-t", "us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/myimage", "." ] } ] }
Aggiungi altri passaggi. Puoi aggiungere un numero qualsiasi di passi di build al file di configurazione della build includendo altri campi
name
e indirizzandoli a cloud builder.Lo snippet seguente include altri due passaggi per il file di configurazione della build:
- un passaggio di build Docker per richiamare il comando
docker push
in modo da eseguire il push della build dell'immagine nel passaggio precedente ad Artifact Registry. un passaggio di build per il comando Google Cloud SDK con l'entrypoint
gcloud
specificato, che crea un'istanza Compute Engine dall'immagine container in Artifact Registry. Il campoenv
è incluso per specificare la zona e la regione di 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" ] }
- un passaggio di build Docker per richiamare il comando
Includi altri campi di configurazione della build. Puoi configurare ulteriormente la build includendo campi come
machineType
,tags
otimeout
. Per l'elenco completo dei campi che puoi includere nel file di configurazione della build, consulta la Panoramica della configurazione di build.Nell'esempio seguente, il passaggio della build
gcr.io/google.com/cloudsdktool/cloud-sdk
si verifica dopo 240 secondi.{ "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" ] }
Consulta lo snippet seguente per l'esempio completo di file di configurazione della build di base:
In questo esempio, le immagini container sono archiviate in Artifact Registry. Se la build produce artefatti non containerizzati, puoi archiviarli in Cloud Storage utilizzando il campo
artifacts
. Per istruzioni su come eseguire questa operazione, consulta la sezione Archiviazione di immagini e elementi.
Passaggi successivi
- Scopri come eseguire le build manualmente e utilizzando i trigger con il file di configurazione della build.
- Scopri come scrivere configurazioni di build per tra cui dipendenze e artefatti a creazione, test e deployment.