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 avvii le build utilizzando lo strumento a riga di comando gcloud o i trigger di build, avrai bisogno di un file di configurazione della build. Puoi scrivere
il file della configurazione di compilazione utilizzando la sintassi YAML o JSON.
Prima di iniziare
Leggi la panoramica della configurazione della build per scoprire i campi che puoi includere in un file di configurazione della build.
Creazione di una configurazione di build
I seguenti passaggi 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 principale del progetto, crea un file denominato
cloudbuild.yaml. Questo è il file di configurazione di Cloud Build.Aggiungi il campo Passaggi. La sezione
stepsdel file di configurazione build contiene i passaggi di build che vuoi che Cloud Build esegua.steps:Aggiungi il primo passaggio. In
steps:, aggiungi un camponamee 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 (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.Il seguente snippet mostra un passaggio di build con un builder
dockergcr.io/cloud-builders/docker, ovvero un'immagine container che esegue Docker.steps: - name: 'gcr.io/cloud-builders/docker'Aggiungi argomenti del passaggio. Il campo
argsdi un passaggio accetta un elenco di argomenti e li passa al builder a cui fa riferimento il camponame. Se il builder nel camponameha un punto di ingresso,argsnell'elenco vengono utilizzati per accedere a questo punto di ingresso. Se il builder nel camponamenon ha un punto di ingresso, viene utilizzato il primo elemento inargscome punto di ingresso.Nel seguente esempio:
buildè il punto di ingresso del builder cloud 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 per l'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
nameaggiuntivi e indirizzandoli ai cloud builder.Il seguente snippet include altri due passaggi per il file build config:
- un passaggio di compilazione Docker per richiamare il comando
docker pushper eseguire il push della compilazione dell'immagine nel passaggio precedente in Artifact Registry. un passaggio di build per il comando SDK Google Cloud con il punto di ingresso
gcloudspecificato, 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 compilazione Docker per richiamare il comando
Includi campi di configurazione della build aggiuntivi. Puoi configurare ulteriormente la creazione includendo campi come
machineType,tagsotimeout. Per l'elenco completo dei campi che puoi includere nel file di configurazione della build, vedi Panoramica della configurazione della build.Nell'esempio seguente, il passaggio di build
gcr.io/google.com/cloudsdktool/cloud-sdkscade 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 lo snippet seguente 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 build produce artefatti non containerizzati, puoi archiviarli in Cloud Storage utilizzando il campo
artifacts. Per istruzioni su come procedere, vedi Memorizzare immagini e artefatti.
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
stepsdel file di configurazione build contiene i passaggi di build che vuoi che Cloud Build esegua.{ "steps": }Aggiungi il primo passaggio. In
steps:, aggiungi un camponamee 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 (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.Il seguente snippet mostra un passaggio di build con un builder
dockergcr.io/cloud-builders/docker, ovvero un'immagine container che esegue Docker.{ "steps": [ { "name": "gcr.io/cloud-builders/docker" } ] }Aggiungi argomenti del passaggio. Il campo
argsdi un passaggio accetta un elenco di argomenti e li passa al builder a cui fa riferimento il camponame. Se il builder nel camponameha un punto di ingresso,argsnell'elenco vengono utilizzati per accedere a questo punto di ingresso. Se il builder nel camponamenon ha un punto di ingresso, viene utilizzato il primo elemento inargscome punto di ingresso.Nel seguente esempio:
buildè il punto di ingresso del builder cloud 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 per l'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
nameaggiuntivi e indirizzandoli ai cloud builder.Il seguente snippet include altri due passaggi per il file build config:
- un passaggio di compilazione Docker per richiamare il comando
docker pushper eseguire il push della compilazione dell'immagine nel passaggio precedente in Artifact Registry. un passaggio di build per il comando SDK Google Cloud con il punto di ingresso
gcloudspecificato, 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 compilazione Docker per richiamare il comando
Includi campi di configurazione della build aggiuntivi. Puoi configurare ulteriormente la creazione includendo campi come
machineType,tagsotimeout. Per l'elenco completo dei campi che puoi includere nel file di configurazione della build, vedi Panoramica della configurazione della build.Nell'esempio seguente, il passaggio di build
gcr.io/google.com/cloudsdktool/cloud-sdkscade 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 lo snippet seguente 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 build produce artefatti non containerizzati, puoi archiviarli in Cloud Storage utilizzando il campo
artifacts. Per istruzioni su come procedere, vedi Memorizzare immagini e artefatti.
Passaggi successivi
- Scopri come eseguire le build manualmente e utilizzando i trigger utilizzando il file di configurazione della build.
- Scopri come scrivere configurazioni di build per includere dipendenze e creare, testare e distribuire artefatti.