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 per consentire a Cloud Build di eseguire le tue attività. Ti servirà un file di configurazione della build se avvii le build utilizzando lo strumento gcloud
a riga di comando o gli attivatori della build. Puoi scrivere il file della configurazione di compilazione utilizzando la sintassi YAML o JSON.
Prima di iniziare
Leggi la Panoramica della configurazione di compilazione per scoprire i campi che puoi includere in un file di configurazione della build.
Creazione di una configurazione di compilazione
I passaggi riportati di seguito spiegano come creare un file di configurazione della build di base. Ogni
uno dei campi nel file di configurazione della compilazione definisce una parte dell'attività che vuoi
eseguire. L'unico campo obbligatorio nel file di configurazione di compilazione è il campo name
per un passaggio. Tutti gli altri campi sono facoltativi.
YAML
Crea il file di configurazione della build. Nella directory principale del progetto, crea un file denominato
cloudbuild.yaml
. Questo è il file di configurazione di Cloud Build.Aggiungi il campo Passaggi. La sezione
steps
nel file di configurazione della build contiene i passaggi di compilazione che vuoi che Cloud Build esegua.steps:
Aggiungi il primo passaggio. In
steps:
, aggiungi un camponame
e indirizzalo a un'immagine container per eseguire l'attività. Cloud Build e la sua community di sviluppatori forniscono diverse immagini container con strumenti e linguaggi comuni installati. Puoi utilizzare una di queste immagini (chiamate anche Cloud Builder) o qualsiasi immagine disponibile pubblicamente in un passaggio di compilazione. Per informazioni sui diversi tipi di immagini container che puoi utilizzare in un passaggio di compilazione, consulta Cloud Builders.Lo snippet seguente mostra un passaggio di compilazione con un
docker
buildergcr.io/cloud-builders/docker
, ovvero un'immagine container che esegue Docker.steps: - name: 'gcr.io/cloud-builders/docker'
Aggiungi gli argomenti del passaggio. Il campo
args
di un passaggio prende un elenco di argomenti e li passa al generatore a cui fa riferimento il camponame
. Se il generatore nel camponame
ha un punto di contatto,args
nell'elenco viene utilizzato per accedere a questo punto di contatto. Se il generatore nel camponame
non ha un punto di entry, viene utilizzato il primo elemento inargs
come punto di entry.Nel seguente esempio:
build
è il punto di contatto del cloud builder Docker.-t
è il tag Docker.us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-image
è il nome dell'immagine da compilare in Artifact Registry. Il passaggio di compilazione utilizza la sostituzione predefinita per l'ID progetto, pertanto questo valore viene sostituito automaticamente in fase di compilazione..
è la posizione del codice sorgente, che indica che il codice si trova nella directory di lavoro corrente.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 passaggi di compilazione al file di configurazione della compilazione includendo campi
name
aggiuntivi e indirizzandoli a cloud builders.Lo snippet seguente include altri due passaggi per il file di configurazione della compilazione:
- Un passaggio di compilazione Docker per richiamare il comando
docker push
per eseguire il push della compilazione dell'immagine nel passaggio precedente in Artifact Registry. un passaggio di compilazione per il comando Google Cloud SDK con il punto di contatto
gcloud
specificato, che crea un'istanza Compute Engine dall'immagine del contenitore 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 compilazione Docker per richiamare il comando
Includi campi di configurazione di compilazione aggiuntivi. Puoi configurare ulteriormente la compilazione includendo campi come
machineType
,tags
otimeout
. Per l'elenco completo dei campi che puoi includere nel file di configurazione della compilazione, consulta Panoramica della configurazione di compilazione.Nell'esempio seguente, il passaggio di compilazione
gcr.io/google.com/cloudsdktool/cloud-sdk
scade 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 un file di configurazione della build di base:
Nell'esempio, le immagini container vengono archiviate in Artifact Registry. Se la compilazione produce artefatti non contenitore, puoi archiviarli in Cloud Storage utilizzando il campo
artifacts
. Per istruzioni su come eseguire questa operazione, consulta Archiviazione di immagini e elementi.
JSON
Crea il file di configurazione della build. Nella directory principale del progetto, crea un file denominato
cloudbuild.json
. Questo è il file di configurazione di Cloud Build.Aggiungi il campo Passaggi. La sezione
steps
nel file di configurazione della build contiene i passaggi di compilazione che vuoi che Cloud Build esegua.{ "steps": }
Aggiungi il primo passaggio. In
steps:
, aggiungi un camponame
e indirizzalo a un'immagine container per eseguire l'attività. Cloud Build e la sua community di sviluppatori forniscono diverse immagini container con strumenti e linguaggi comuni installati. Puoi utilizzare una di queste immagini (chiamate anche Cloud Builder) o qualsiasi immagine disponibile pubblicamente in un passaggio di compilazione. Per informazioni sui diversi tipi di immagini container che puoi utilizzare in un passaggio di compilazione, consulta Cloud Builders.Lo snippet seguente mostra un passaggio di compilazione con un
docker
buildergcr.io/cloud-builders/docker
, ovvero un'immagine container che esegue Docker.{ "steps": [ { "name": "gcr.io/cloud-builders/docker" } ] }
Aggiungi gli argomenti del passaggio. Il campo
args
di un passaggio prende un elenco di argomenti e li passa al generatore a cui fa riferimento il camponame
. Se il generatore nel camponame
ha un punto di contatto,args
nell'elenco viene utilizzato per accedere a questo punto di contatto. Se il generatore nel camponame
non ha un punto di entry, viene utilizzato il primo elemento inargs
come punto di entry.Nel seguente esempio:
build
è il punto di contatto del cloud builder Docker.-t
è il tag Docker.us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-image
è il nome dell'immagine da compilare in Artifact Registry. Il passaggio di compilazione utilizza la sostituzione predefinita per l'ID progetto, pertanto questo valore viene sostituito automaticamente in fase di compilazione..
è la posizione del codice sorgente, che indica che il codice si trova nella directory di lavoro corrente.{ "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 passaggi di compilazione al file di configurazione della compilazione includendo campi
name
aggiuntivi e indirizzandoli a cloud builders.Lo snippet seguente include altri due passaggi per il file di configurazione della compilazione:
- Un passaggio di compilazione Docker per richiamare il comando
docker push
per eseguire il push della compilazione dell'immagine nel passaggio precedente in Artifact Registry. un passaggio di compilazione per il comando Google Cloud SDK con il punto di contatto
gcloud
specificato, che crea un'istanza Compute Engine dall'immagine del contenitore 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 compilazione Docker per richiamare il comando
Includi campi di configurazione di compilazione aggiuntivi. Puoi configurare ulteriormente la compilazione includendo campi come
machineType
,tags
otimeout
. Per l'elenco completo dei campi che puoi includere nel file di configurazione della compilazione, consulta Panoramica della configurazione di compilazione.Nell'esempio seguente, il passaggio di compilazione
gcr.io/google.com/cloudsdktool/cloud-sdk
scade 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 un file di configurazione della build di base:
Nell'esempio, le immagini container vengono archiviate in Artifact Registry. Se la compilazione produce artefatti non contenitore, puoi archiviarli in Cloud Storage utilizzando il campo
artifacts
. Per istruzioni su come eseguire questa operazione, consulta Archiviazione di immagini e elementi.
Passaggi successivi
- Scopri come eseguire le build manualmente e utilizzando gli trigger tramite il file di configurazione della build.
- Scopri come scrivere configurazioni di compilazione per includere le dipendenze e compilare, testare e implementare gli elementi.