Vai al contenuto
GiovanniLiguori
Bergamo · ItaliaPrenota una call
§ 00 / GIOVANNI
Sistemi agentici per processi documentali: fonti, confini, astensione e traccia.
SCOPING APERTO
Risorse / DM / DEPLOY15 settembre 2026

Come aggiorno davvero una pipeline Cloud Run: :latest vs digest

Guida pratica al deploy di fix su Cloud Run Job, quando rebuild basta e quando devi aggiornare il digest del job.

Commenta DEPLOY sotto il reel15 settembre 2026Giovanni Liguori
Contenuto assistito da AI

Il problema: rebuild exit 0, codice vecchio in produzione

Ho fatto un fix al carosello della mia pipeline. Ho lanciato Cloud Build. Exit 0. Immagine spinta sul registry.

Ho controllato il job Cloud Run che girava. Stava usando ancora il digest precedente. Il fix non era in produzione.

Questo è il punto: build e deploy non sono la stessa cosa. Su Cloud Run Job puoi pushare una nuova immagine senza che il job che gira la veda.

Perché succede: :latest vs digest

Cloud Run Job ha due modi di riferirsi all'immagine del container:

  1. Tag :latest, il job risolve il tag a un digest specifico al momento della sua creazione o ultimo aggiornamento. Ogni volta che parte, usa l'immagine corrispondente a quel digest. Per fargli usare una nuova immagine con lo stesso tag, è necessario aggiornare esplicitamente la definizione del job.
  2. Digest fisso (es. sha256:abc123...), il job è pinnato a una versione esatta dell'immagine. Un rebuild crea una nuova immagine, ma il job continua a girare su quella pinnata. Per aggiornare devi cambiare il job a mano.

Nel mio sistema: il reel usa :latest, il carosello è pinnato al digest. Motivazione: il reel esce ogni giorno, quindi aggiorno esplicitamente il job per fargli usare l'ultima versione. Il carosello ha un ciclo di verifica più lungo, voglio sapere esattamente quale codice gira.

La checklist del deploy

  1. Fai il build e pusha l'immagine sul registry.
  2. Controlla come il tuo job referenzia l'immagine: gcloud run jobs describe <job> --format='value(spec.template.containers[0].image)'.
  3. Indipendentemente dal fatto che tu veda un tag (:latest, :stable) o un digest (sha256:...), per far sì che il job utilizzi la nuova immagine, devi aggiornare il job: gcloud run jobs update <job> --image <nuova-immagine>.

Quando usare digest vs :latest

Usa digest quando:

  • Vuoi riproducibilità esatta (stesso codice a ogni lancio)
  • Hai un processo di validazione che deve girare sulla versione X
  • Stai facendo rollout controllati

Usa :latest quando:

  • Vuoi evitare di gestire manualmente i digest delle immagini.
  • Sei consapevole che ogni aggiornamento dell'immagine richiede un aggiornamento esplicito della definizione del job.
  • Il ciclo di deploy è frequente e la comodità di non specificare un digest supera la necessità di un controllo granulare sulla versione esatta.

Nel dubbio: parti con digest. Il controllo esplicito costa qualche secondo al deploy, ti salva da sorprese in produzione.

Voce sintetica generata. ---

Come aggiorno davvero una pipeline Cloud Run: :latest vs digest | Giovanni Liguori