Dockerfile
nella relativa radice.
Per automatizzare il deployment da Git con Cloud Build:
Crea una configurazione di Cloud Build che:
- Crea l'immagine container
- Esegue il push dell'immagine in Container Registry (ritirato)
- Esegue il deployment di una nuova revisione del servizio Cloud Run
A tal fine, aggiungi un file denominato
cloudbuild.yamlnella directory principale del repository con questo contenuto:steps: # build the container image - name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', 'gcr.io/$PROJECT_ID/[SERVICE-NAME]:$COMMIT_SHA', '.'] # push the container image to Container Registry - name: 'gcr.io/cloud-builders/docker' args: ['push', 'gcr.io/$PROJECT_ID/[SERVICE-NAME]:$COMMIT_SHA'] # Deploy container image to Cloud Run - name: 'gcr.io/cloud-builders/gcloud' args: - 'run' - 'deploy' - '[SERVICE-NAME]' - '--image' - 'gcr.io/$PROJECT_ID/[SERVICE-NAME]:$COMMIT_SHA' - '--region' - '[REGION]' images: - 'gcr.io/$PROJECT_ID/[SERVICE-NAME]:$COMMIT_SHA'Sostituisci
- [SERVICE-NAME] con il nome del servizio Cloud Run.
- [REGION] con la regione del servizio Cloud Run di cui stai eseguendo il deployment.
L'utilizzo della variabile di sostituzione
$COMMIT_SHAviene compilato da Cloud Build quando viene attivato da un repository Git.Concedi i ruoli Amministratore di Cloud Run e Utente service account al account di servizio Cloud Build:
Apri la pagina delle impostazioni di Cloud Build nella console Google Cloud :
Nel riquadro Autorizzazioni service account, imposta lo stato del ruolo Amministratore di Cloud Run su Attiva:
Seleziona CONCEDI L'ACCESSO A TUTTI I SERVICE ACCOUNT per concedere il ruolo Utente service account a tutti i service account del progetto nella tua pagina.
Fai clic su Trigger nel pannello di navigazione a sinistra per aprire la pagina Trigger:
- Fai clic su Crea trigger.
- Nel campo Nome, inserisci un nome per il trigger.
- In Evento, seleziona l'evento del repository per avviare il trigger.
- In Origine, seleziona il repository e il nome del ramo o del tag che avvierà il trigger. Per ulteriori informazioni su come specificare i rami da compilare automaticamente, vedi Creazione di un trigger di build.
- In File di configurazione di Cloud Build (yaml o json), seleziona File di configurazione di Cloud Build.
- Nel campo Posizione file di configurazione Cloud Build,
digita
cloudbuild.yamldopo/. - Fai clic su Crea per salvare il trigger di build.
Hai finito. D'ora in poi, ogni volta che esegui il push nel repository, viene richiamata automaticamente una build e un deployment nel servizio Cloud Run.
Deployment continuo con autorizzazioni IAM minime
Quando un container viene sottoposto a deployment in un servizio Cloud Run, viene eseguito con l'identità del service account di runtime di questo servizio Cloud Run. Poiché Cloud Build può eseguire automaticamente il deployment di nuovi container, Cloud Build deve essere in grado di agire come service account di runtime del tuo servizio Cloud Run.
Per concedere l'accesso limitato a Cloud Build per il deployment a un servizio Cloud Run:
Interfaccia utente della console
Vai alla pagina Service Accounts della console Google Cloud :
Fai clic sull'indirizzo email del service account di runtime del tuo servizio Cloud Run (per impostazione predefinita, è
PROJECT_NUMBER-compute@developer.gserviceaccount.com).Fai clic sulla scheda Entità con accesso.
Fai clic su Concedi l'accesso.
Inserisci il service account Cloud Build (
PROJECT_NUMBER@cloudbuild.gserviceaccount.com)Nel menu a discesa Seleziona un ruolo, seleziona il ruolo Service Accounts > Service Account User.
Fai clic su Salva.
gcloud
Utilizza il comando gcloud iam service-accounts add-iam-policy-binding:
gcloud iam service-accounts add-iam-policy-binding \ PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --member="serviceAccount:PROJECT_NUMBER@cloudbuild.gserviceaccount.com" \ --role="roles/iam.serviceAccountUser"
Sostituisci PROJECT_NUMBER con l'ID numerico del tuo progetto.
Se utilizzi Cloud Run con un'identità di servizio personalizzata,
sostituisci PROJECT_NUMBER-compute@developer.gserviceaccount.com con l'indirizzo del tuo account di servizio.
Per ulteriori informazioni, consulta la sezione Autorizzazioni di deployment.
Passaggi successivi
- Scopri come eseguire il deployment o pubblicare un'immagine container in un registro privato in un altro progetto in Impostazione account di servizio account.