Configura manualmente il deployment continuo utilizzando Cloud Build

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.
Le seguenti istruzioni presuppongono che tu abbia un repository Git con un Dockerfile alla sua radice.

Per automatizzare il deployment da Git con Cloud Build:

  1. Crea una configurazione di Cloud Build che:

    • Crea l'immagine container
    • Esegue il push dell'immagine a Container Registry
    • Esegue il deployment di una nuova revisione nel servizio Cloud Run

    Per farlo, aggiungi un file denominato cloudbuild.yaml nella directory principale del repository con il seguente 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_SHA viene completato da Cloud Build quando viene attivato da un repository Git.

  2. Concedi i ruoli Amministratore di Cloud Run e Utente account di servizio all'account di servizio Cloud Build:

    1. Apri la pagina delle impostazioni di Cloud Build in Google Cloud Console:

      Visita la pagina delle impostazioni di Cloud Build

    2. Nel riquadro Autorizzazioni dell'account di servizio, imposta lo stato del ruolo Amministratore Cloud Run su Abilita:

      Screenshot della pagina Autorizzazioni account di servizio

    3. Seleziona CONCEDI L'ACCESSO A TUTTI GLI ACCOUNT DI SERVIZIO per concedere il ruolo Utente account di servizio a tutti gli account di servizio nel progetto nella pagina.

  3. Fai clic su Attivatori nel pannello di navigazione a sinistra per aprire la pagina Attivatori:

    Visita la pagina Trigger

    1. Fai clic su Crea trigger.
    2. Nel campo Nome, inserisci un nome per l'attivatore.
    3. In Evento, seleziona l'evento del repository per avviare il trigger.
    4. In Origine, seleziona il tuo repository e il nome del ramo o del tag che avvierà il trigger. Per saperne di più su come specificare i rami da creare automaticamente, consulta la sezione Creazione di un trigger di build.
    5. In File di configurazione di Cloud Build (yaml o json), seleziona File di configurazione di Cloud Build.
    6. Nel campo Posizione file di configurazione Cloud Build, digita cloudbuild.yaml dopo /.
    7. Fai clic su Crea per salvare il trigger di build.
  4. Hai finito! D'ora in poi, ogni volta che esegui il push nel tuo repository, vengono richiamati 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à dell'account di servizio runtime di questo servizio Cloud Run. Dato che Cloud Build può eseguire il deployment di nuovi container automaticamente, Cloud Build deve essere in grado di agire come account di servizio di runtime del tuo servizio Cloud Run.

Per concedere l'accesso limitato a Cloud Build al deployment di un servizio Cloud Run:

Interfaccia utente della console

  1. Vai alla pagina Account di servizio di Google Cloud Console:

    Vai agli account di servizio

  2. Fai clic sull'indirizzo email dell'account di servizio di runtime Cloud Run di Cloud Run (per impostazione predefinita, è PROJECT_NUMBER-compute@developer.gserviceaccount.com).

  3. Fai clic sulla scheda Autorizzazioni.

  4. Fai clic su Concedi l'accesso.

  5. Inserisci l'account di servizio Cloud Build (PROJECT_NUMBER@cloudbuild.gserviceaccount.com)

  6. Nel menu a discesa Seleziona un ruolo, seleziona il ruolo Account di servizio &gt Utente account di servizio.

  7. Fai clic su Salva.

Riga di comando

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 utilizzando 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 pagina sulle autorizzazioni di deployment.

Passaggi successivi