In questa pagina viene descritto 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 l'esecuzione delle attività in Cloud Build. Se stai iniziando le build utilizzando lo strumento a riga di comando gcloud
o gli attivatori della build, devi avere un file di configurazione della build. Puoi scrivere il file di configurazione della build utilizzando la sintassi YAML o JSON.
Prima di iniziare
Leggi la pagina Panoramica della configurazione della build per saperne di più sui campi che puoi includere in un file di configurazione della build.
Creazione di una configurazione di build
I passaggi seguenti spiegano come creare un file di configurazione della build di base. Ciascuno dei campi del file di configurazione della build definisce una parte dell'attività da 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 principale del progetto, crea un file denominato
cloudbuild.yaml
. Questo è il tuo file di configurazione di Cloud Build.Aggiungi il campo dei passaggi. La sezione
steps
nel file di configurazione della build contiene i passaggi di build che vuoi che siano eseguiti da Cloud Build.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 qualsiasi di queste immagini (dette 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 Build.Il seguente snippet 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 di passaggio. Il campo
args
di un passaggio acquisisce un elenco di argomenti e li passa al builder a cui viene fatto riferimento nel camponame
. Se il builder nel camponame
ha un punto di ingresso,args
nell'elenco viene utilizzato per accedervi. Se il builder nel camponame
non ha un punto di ingresso, il primo elemento inargs
viene utilizzato come punto di ingresso.Nell'esempio seguente:
build
è il punto di ingresso al cloud builder Docker.-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 dell'ID progetto, pertanto questo valore viene sostituito automaticamente al momento della build..
è la posizione del codice sorgente, che indica che il codice sorgente 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 build al file di configurazione della build includendo campi
name
aggiuntivi e indirizzandoli ai build del cloud.Il seguente snippet include altri due passaggi al file di configurazione della build:
- un passaggio di build Docker per richiamare il comando
docker push
per eseguire il push della build dell'immagine nel passaggio precedente ad Artifact Registry. un passaggio di build per il comando Google Cloud SDK con il punto di accesso
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 campi di configurazione della build aggiuntivi. 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 Panoramica della configurazione della build.Nell'esempio seguente, il passaggio di build di
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'
Vedi il seguente snippet per l'esempio completo di un file di configurazione della build di base:
Nell'esempio, le immagini container sono archiviate in Artifact Registry. Se la tua build produce artefatti non containerizzati, puoi archiviarli in Cloud Storage utilizzando il campo
artifacts
. Per istruzioni su come eseguire questa operazione, vedi Archiviare immagini e artefatti.
JSON
Crea il file di configurazione della build. Nella directory principale del progetto, crea un file denominato
cloudbuild.json
. Questo è il tuo file di configurazione di Cloud Build.Aggiungi il campo dei passaggi. La sezione
steps
nel file di configurazione della build contiene i passaggi di build che vuoi che siano eseguiti da Cloud Build.{ "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 qualsiasi di queste immagini (dette 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 Build.Il seguente snippet 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 di passaggio. Il campo
args
di un passaggio acquisisce un elenco di argomenti e li passa al builder a cui viene fatto riferimento nel camponame
. Se il builder nel camponame
ha un punto di ingresso,args
nell'elenco viene utilizzato per accedervi. Se il builder nel camponame
non ha un punto di ingresso, il primo elemento inargs
viene utilizzato come punto di ingresso.Nell'esempio seguente:
build
è il punto di ingresso al cloud builder Docker.-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 dell'ID progetto, pertanto questo valore viene sostituito automaticamente al momento della build..
è la posizione del codice sorgente, che indica che il codice sorgente 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 build al file di configurazione della build includendo campi
name
aggiuntivi e indirizzandoli ai build del cloud.Il seguente snippet include altri due passaggi al file di configurazione della build:
- un passaggio di build Docker per richiamare il comando
docker push
per eseguire il push della build dell'immagine nel passaggio precedente ad Artifact Registry. un passaggio di build per il comando Google Cloud SDK con il punto di accesso
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 campi di configurazione della build aggiuntivi. 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 Panoramica della configurazione della build.Nell'esempio seguente, il passaggio di build di
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" ] }
Vedi il seguente snippet per l'esempio completo di un file di configurazione della build di base:
Nell'esempio, le immagini container sono archiviate in Artifact Registry. Se la tua build produce artefatti non containerizzati, puoi archiviarli in Cloud Storage utilizzando il campo
artifacts
. Per istruzioni su come eseguire questa operazione, vedi Archiviare immagini e artefatti.
Passaggi successivi
- Scopri come eseguire le build manualmente e utilizzando gli attivatori utilizzando il file di configurazione della build.
- Scopri come scrivere configurazioni di build per includere dipendenze, creazione, test e deployment degli artefatti.