Questa pagina fornisce strategie di risoluzione dei problemi, nonché soluzioni per alcuni messaggi di errore comuni che potresti visualizzare durante l'esecuzione di una build.
Hai esaminato i log di build?
Utilizza Logging o Cloud Storage Build log per ottenere maggiori informazioni sull'errore di compilazione. I log scritti in stdout
o stderr
vengono visualizzati automaticamente nella console Google Cloud.
Le build manuali non vanno a buon fine perché l'utente non ha accesso ai log di build
Visualizzi il seguente errore quando provi a eseguire una build manuale:
AccessDeniedAccess denied. [EMAIL_ADDRESS] does not have storage.objects.get access to the Google Cloud Storage object.
Visualizzi questo errore perché Cloud Build richiede che gli utenti che eseguono build manuali e che utilizzano il bucket di log predefinito di Cloud Storage abbiano il ruolo IAM Visualizzatore progetto oltre al ruolo Editor di Cloud Build. Per correggere questo errore, puoi procedere in uno dei seguenti modi:
Utilizza il bucket di log predefinito e concedi il ruolo Visualizzatore progetto e il ruolo Editor di Cloud Build all'utente che esegue la build. Per istruzioni su come concedere questa autorizzazione, consulta la pagina Configurare l'accesso alle risorse Cloud Build.
Crea il tuo bucket Cloud Storage per archiviare i log. Per istruzioni, consulta l'articolo su come archiviare i log di build in un bucket creato dall'utente.
Creazione delle build non riuscita a causa di autorizzazioni dell'account di servizio mancanti
Cloud Build utilizza un account di servizio speciale per eseguire le build per tuo conto. Se l'account di servizio Cloud Build non dispone dell'autorizzazione necessaria per eseguire un'attività, verrà visualizzato il seguente errore:
Missing necessary permission iam.serviceAccounts.actAs for [USER] on the service account [CLOUD_BUILD_SERVICE_ACCOUNT]@PROJECT.iam.gserviceaccount.com
Per correggere questo errore, concedi l'autorizzazione richiesta all'account di servizio. Utilizza le informazioni nelle pagine seguenti per determinare l'autorizzazione per concedere l'account di servizio Cloud Build:
- Account di servizio Cloud Build
- Informazioni sui ruoli IAM
- Concessione delle autorizzazioni per un account di servizio Cloud Build
Gli errori di build a causa delle autorizzazioni mancanti per l'account di servizio si verificano di solito quando si tenta di eseguire il deployment utilizzando Cloud Build.
Errore di autorizzazione negata durante il deployment su Cloud Functions
Quando provi a utilizzare Cloud Functions, viene visualizzato il seguente errore:
ResponseError: status=[403], code=[Ok], message=[Permission 'cloudfunctions.functions.get' denied
Per correggere questo errore, concedi il ruolo Sviluppatore Cloud Functions all'account di servizio Cloud Build.
Errore di autorizzazione mancante durante il deployment su Cloud Functions
Quando provi a eseguire il deployment su Cloud Functions, viene visualizzato il seguente errore:
Missing necessary permission iam.serviceAccounts.actAs for [USER] on the service account [CLOUD_BUILD_SERVICE_ACCOUNT]@PROJECT.iam.gserviceaccount.com
Per correggere questo errore, concedi il ruolo Utente account di servizio all'account di servizio Cloud Build.
Errore durante il deployment su App Engine
Quando provi a eseguire il deployment su App Engine, viene visualizzato il seguente errore:
Missing necessary permission iam.serviceAccounts.actAs for [USER] on the service account [CLOUD_BUILD_SERVICE_ACCOUNT]@PROJECT.iam.gserviceaccount.com
Per risolvere questo errore, concedi il ruolo Amministratore App Engine all'account di servizio Cloud Build.
Errore durante il deployment su GKE
Si verifica il seguente errore durante il tentativo di deployment su GKE:
Missing necessary permission iam.serviceAccounts.actAs for [USER] on the service account [CLOUD_BUILD_SERVICE_ACCOUNT]@PROJECT.iam.gserviceaccount.com
Per correggere questo errore, concedi il ruolo Sviluppatore GKE all'account di servizio Cloud Build.
Errore durante il deployment su Cloud Run
Si verifica il seguente errore durante il tentativo di deployment su Cloud Run:
Missing necessary permission iam.serviceAccounts.actAs for [USER] on the service account [CLOUD_BUILD_SERVICE_ACCOUNT]@PROJECT.iam.gserviceaccount.com
Visualizzi questo errore perché l'account di servizio Cloud Build non dispone delle autorizzazioni IAM necessarie per eseguire il deployment su Cloud Run. Per informazioni sulla concessione delle autorizzazioni necessarie, consulta la pagina Deployment su Cloud Run.
Il trigger di build non va a buon fine a causa dell'autorizzazione cloudbuild.builds.create
mancante
Quando esegui un trigger di build, viene visualizzato il seguente errore:
Failed to trigger build: Permission 'cloudbuild.builds.create' denied on resource 'projects/xxxxxxxx' (or it may not exist)
I trigger di build utilizzano l'account di servizio Cloud Build per creare una build. L'errore riportato sopra indica che l'account di servizio Cloud Build non dispone dell'autorizzazione IAM cloudbuild.builds.create
, necessaria per consentire all'account di servizio di eseguire un trigger di build. Puoi risolvere questo errore concedendo il ruolo IAM Cloud Build Service Account
a [PROJECT_NUMBER]@cloudbuild.gserviceaccount.com
.
Per istruzioni su come concedere questo ruolo, vedi Configurazione dell'accesso per l'account di servizio Cloud Build.
Errore durante l'archiviazione delle immagini in Container Registry
Viene visualizzato il seguente errore quando la build tenta di archiviare immagini create in Container Registry:
[EMAIL_ADDRESS] does not have storage.buckets.create access to project [PROJECT_NAME]
Visualizzi questo errore perché l'account di servizio Cloud Build non dispone del ruolo Amministratore Storage necessario per archiviare le immagini container in Container Registry.
Creazione di build non riuscita a causa di un'autorizzazione SSH non valida
Viene visualizzato il seguente errore durante l'esecuzione di una build:
Could not parse ssh: [default]: invalid empty ssh-agent socket, make sure SSH_AUTH_SOCK is set
Questo errore indica un problema con l'autorizzazione SSH. Un esempio comune è un errore di autorizzazione SSH che si verifica quando si accede a repository GitHub privati con Cloud Build. Per istruzioni sulla configurazione di SSH per GitHub, consulta Accesso ai repository privati GitHub.
Creazione delle build non riuscita a causa di un errore di No route to host
Quando esegui una build in un pool privato viene visualizzato il seguente errore o un errore simile:
Unable to connect to the server: dial tcp 192.168.10.XX:<port>: connect: no route to host
Cloud Build esegue i propri Cloud builder sulla macchina virtuale nel progetto gestito da Google utilizzando i container Docker. All'interfaccia del bridge Docker (e di conseguenza ai container collegati a questa interfaccia) viene assegnato un intervallo IP di 192.168.10.0/24
, che rende impossibile la comunicazione con gli host esterni nella stessa subnet. Quando alloca gli intervalli IP per le risorse nei tuoi progetti durante la configurazione del pool privato, ti consigliamo di selezionare un intervallo al di fuori di 192.168.10.0/24. Per le istruzioni, vedi Configurazione dell'ambiente per i pool privati.
La connessione alla risorsa esterna non riesce perché non è abilitato un IP esterno
Viene visualizzato il seguente errore quando ti connetti a una risorsa esterna da un pool privato:
Failed to connect to <external_domain>: Connection timed out
I pool privati utilizzano IP esterni per accedere alle risorse sulla rete Internet pubblica, ad esempio i repository esterni. Quando crei o aggiorni un pool privato, seleziona la casella per assegnare IP esterni al pool privato. Per istruzioni sulla creazione o l'aggiornamento dei campi all'interno del pool privato, consulta Creazione e gestione dei pool privati.
Errore dell'attivatore con errore Couldn't read commit
Quando esegui un trigger di build, viene visualizzato il seguente errore:
Failed to trigger build: Couldn't read commit
Cloud Build restituisce questo messaggio se stai tentando di attivare una build utilizzando un ramo che non esiste. Controlla l'ortografia e la coerenza dei nomi delle directory. Per istruzioni sulla configurazione dei trigger, consulta la sezione Creare e gestire i trigger di build.
Errore di timeout I/O
Viene visualizzato il seguente errore durante l'esecuzione di una build:
Timeout - last error: dial tcp IP_ADDRESS: i/o timeout
Questo errore di solito si verifica quando la build tenta di accedere alle risorse in una rete privata. Le build eseguite tramite Cloud Build possono accedere alle risorse private nella rete Internet pubblica, ad esempio le risorse in un repository o in un registry, ma non possono accedere alle risorse in una rete privata.
Errori client 4xx
Questo gruppo di errori indica che la richiesta di build non è andata a buon fine, presumibilmente per errore dell'utente che la invia. Ecco alcuni esempi di errori del client 4xx:
**Error**: 404 : Requested entity was not found
**Error**: 404 : Trigger not found
**Error**: 400 : Failed Precondition
**Error**: 403 : Permission denied
Quando viene visualizzato un errore client 4xx, controlla i log della build per verificare se contengono ulteriori informazioni sul motivo dell'errore. Ecco alcune cause comuni degli errori del client:
- La posizione di origine specificata non ha nulla di nuovo in cui eseguire il commit e l'albero di lavoro è pulito. In questo caso, controlla la posizione del codice sorgente e prova a crearlo di nuovo.
- Il tuo repository non contiene un file di configurazione della build. In questo caso, carica un file di configurazione della build nel tuo repository ed esegui di nuovo la build.
- Hai specificato un ID attivatore errato.
- Di recente hai aggiunto un nuovo repository dopo aver installato l'app GitHub e Cloud Build non dispone delle autorizzazioni per accedere al nuovo repository. In questo caso, connetti il nuovo repository a Cloud Build.
- Devi concedere un'altra autorizzazione all'account di servizio.
Unauthenticated
errori per i passaggi Docker a lunga esecuzione
I passaggi di build che prevedono un comando Docker eseguito per più di un'ora (ad esempio il push di un'immagine di grandi dimensioni ad Artifact Registry) potrebbero non riuscire e restituire un errore di autenticazione. Cloud Build aggiorna i token di autenticazione ogni ora, ma Docker potrebbe non riuscire a recuperare questi nuovi token, causando problemi di autenticazione. Puoi scrivere il tuo token con una durata personalizzata da archiviare e fare riferimento a questo per i comandi Docker.
Passaggi successivi
- Scopri come gestire i log di build.