Cloud Run supporta il deployment diretto del codice sorgente, ma puoi anche creare il codice sorgente in un'immagine container ed eseguire il deployment di questa immagine container in Cloud Run. Puoi utilizzare le immagini container per qualsiasi risorsa Cloud Run.
Casi d'uso comuni per separare le operazioni di build e di deployment:
- Integrazione e distribuzione continua: gli sviluppatori creano ed eseguono il push del codice in un repository di origine, un sistema CI/CD compila automaticamente questo codice sorgente in un container, esegue i test ed esegue automaticamente il deployment in un ambiente di gestione temporanea.
- Infrastructure as Code: le risorse Cloud Run gestite utilizzando YAML o Terraform fanno riferimento a un URL dell'immagine container. Il codice sorgente scritto dagli sviluppatori deve essere integrato in un'immagine container.
Puoi utilizzare qualsiasi sistema per creare un contenitore. Questa pagina descrive i seguenti modi per utilizzare Cloud Build per creare immagini container:
Requisiti per i servizi Cloud Run
Per i servizi Cloud Run, puoi utilizzare immagini container create con qualsiasi strumento in grado di
creare immagini container, purché rispettino il contratto container.
In particolare, il codice deve rimanere in ascolto delle richieste HTTP sulla porta definita dalla variabile di ambiente PORT
. Questa variabile di ambiente PORT
viene
inserita automaticamente da Cloud Run nel container.
Prima di iniziare
Per eseguire alcuni dei comandi in questa pagina, devi utilizzare Google Cloud CLI.
Crea un repository in un registro dei container supportato. Per creare un repository Artifact Registry, esegui:
gcloud artifacts repositories create REPOSITORY \ --repository-format=docker \ --location=LOCATION \ --description="DESCRIPTION" \ --immutable-tags \ --async
Puoi configurare Docker per accedere ad Artifact Registry utilizzando l'assistente per le credenziali gcloud CLI:
Sostituiscigcloud auth configure-docker LOCATION-docker.pkg.dev
LOCATION
con il nome della regione del repository del contenitore, ad esempious-west2
.
Crea utilizzando un Dockerfile
Prima di creare un'immagine container ("containerizzazione") delle tue origini in locale utilizzando Docker o Cloud Build, devi avere un Dockerfile insieme alle tue origini. Gli esempi Hello World contengono applicazioni di esempio e Dockerfile in molte lingue popolari.
Se utilizzi Dockerfile, puoi utilizzare uno dei seguenti metodi per la creazione:
- Creare utilizzando Cloud Build
- Crea localmente utilizzando Docker
Creare utilizzando Cloud Build
Puoi creare la tua immagine su Google Cloud utilizzando Cloud Build:
Vai alla cartella contenente le origini e il Dockerfile.
Esegui il comando:
gcloud builds submit --tag IMAGE_URL
Sostituisci IMAGE_URL con un riferimento all'immagine container, ad esempio
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL segue il formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.
Per suggerimenti su come migliorare il rendimento delle build, consulta Accelerare le build
Crea localmente ed esegui il push utilizzando Docker
Se hai Docker installato localmente, puoi utilizzare docker build
anziché Cloud Build o i buildpack di Google Cloud.
Per creare l'immagine container utilizzando Docker:
Vai alla cartella contenente le origini e
Dockerfile
.Esegui il comando:
docker build . --tag IMAGE_URL
Sostituisci IMAGE_URL con un riferimento all'immagine container, ad esempio
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL segue il formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.Tieni presente che se utilizzi un Mac con Apple Silicon, devi specificare
--platform linux/amd64
nella riga di comando.Esegui il push dell'immagine container in un registro container supportato:
docker push IMAGE_URL
Sostituisci IMAGE_URL con un riferimento all'immagine container, ad esempio
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL segue il formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.
Per escludere i file locali da questa procedura, segui le istruzioni del
file di configurazione .dockerignore
.
Crea utilizzando i buildpack di Google Cloud
I buildpack di Google Cloud sono un insieme di buildpack compatibili con la CNCF che creano immagini container dal codice sorgente progettate per essere eseguite su piattaforme container, tra cui Cloud Run. Google Cloud
Per un elenco delle lingue supportate, consulta la documentazione dei buildpack di Google Cloud.
Creare con i buildpack di Google Cloud utilizzando Cloud Build
Per creare con i buildpack di Google Cloud:
Vai alla cartella contenente le fonti.
Esegui il comando:
gcloud builds submit --pack image=IMAGE_URL
Sostituisci IMAGE_URL con un riferimento all'immagine container, ad esempio
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL segue il formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.Attendi il completamento della build.
Crea con i buildpack di Google Cloud utilizzando la riga di comando pack
Per la compilazione utilizzando il comando pack:
Se non l'hai ancora fatto, installa Docker.
Se non l'hai ancora fatto, installa
pack
.Vai alla cartella contenente le fonti.
Esegui questo comando per creare ed eseguire il push nel registro dei container supportato:
pack build --publish IMAGE_URL
Sostituisci IMAGE_URL con un riferimento all'immagine container, ad esempio
us-docker.pkg.dev/cloudrun/container/hello:latest
. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL segue il formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.Attendi il completamento di
pack
.
Per ulteriori informazioni, leggi le istruzioni nella sezione Creare un'applicazione.
Passaggi successivi
Per eseguire il deployment dei container creati su Cloud Run, segui la procedura descritta in Deployment dei servizi.
Scopri come creare e aggiornare i job Cloud Run dall'immagine container creata.
Dopo aver creato il container, puoi testarlo localmente prima del deployment su Cloud Run. Per saperne di più, consulta la sezione Testare un servizio Cloud Run localmente.
Dopo aver creato o aggiornato un job utilizzando il container integrato, scopri come eseguire il job una sola volta, in base a una pianificazione o come parte di un flusso di lavoro.
Per automatizzare le build e i deployment dei tuoi servizi Cloud Run utilizzando i trigger di Cloud Build, configura il deployment continuo.
Per eseguire build di container ottimali per l'applicazione Java, consulta Creazione di container Java con Jib.