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 disaccoppiare le operazioni di build e deployment:
- Integrazione e distribuzione continue: gli sviluppatori creano e inviano il codice a un repository di origine, un sistema CI/CD crea automaticamente questo codice sorgente in un container, esegue test ed esegue automaticamente il deployment in un ambiente di staging.
- Infrastruttura come codice: le risorse Cloud Run gestite utilizzando YAML o Terraform fanno riferimento a un URL di immagine container. Il codice sorgente scritto dagli sviluppatori deve essere creato in un'immagine container.
Puoi utilizzare qualsiasi sistema per creare un container. 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 del 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 avere Google Cloud CLI.
Crea un repository in un registro container supportato. Per creare un repository Artifact Registry, esegui:
gcloud artifacts repositories create REPOSITORY \ --repository-format=docker \ --location=LOCATION \ --description="DESCRIPTION" \ --immutable-tags \ --asyncPuoi configurare Docker per accedere ad Artifact Registry utilizzando l' helper delle credenziali gcloud CLI:
Sostituiscigcloud auth configure-docker LOCATION-docker.pkg.dev
LOCATIONcon il nome della regione del repository container, ad esempious-west2.
Creare un'immagine utilizzando un Dockerfile
Prima di creare le origini in un'immagine container ("containerizzazione") localmente utilizzando Docker o Cloud Build, devi avere un Dockerfile insieme alle origini. Gli esempi di Hello World contengono applicazioni di esempio e Dockerfile in molte lingue comuni.
Se utilizzi i Dockerfile, puoi utilizzare uno dei seguenti metodi per creare un'immagine:
- Crea un'immagine utilizzando Cloud Build
- Crea un'immagine localmente utilizzando Docker
Creare un'immagine utilizzando Cloud Build
Puoi creare l'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_URLcon un riferimento all'immagine container, ad esempious-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL segue il formato diLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
Per suggerimenti su come migliorare il rendimento della build, consulta Velocizzare le build
Creare un'immagine localmente ed eseguirne il push utilizzando Docker
Se hai installato Docker localmente, puoi utilizzare docker buildanziché 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_URLcon un riferimento all'immagine container, ad esempious-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL segue il formato diLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.Tieni presente che se utilizzi un Mac con Apple silicon, devi specificare
--platform linux/amd64nella riga di comando.Esegui il push dell'immagine container in un registro container supportato:
docker push IMAGE_URL
Sostituisci
IMAGE_URLcon un riferimento all'immagine container, ad esempious-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL segue il formato diLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
Per escludere i file locali da questa procedura, segui le
.dockerignore istruzioni del file di configurazione.
Creare un'immagine utilizzando i buildpack di Google Cloud
I buildpack di Google Cloud sono un insieme di buildpack compatibili con CNCF che creano codice sorgente in immagini container progettate per essere eseguite su Google Cloud piattaforme container, inclusa Cloud Run.
Per un elenco delle lingue supportate, consulta la documentazione dei buildpack di Google Cloud
Creare un'immagine con i buildpack di Google Cloud utilizzando Cloud Build
Per creare un'immagine con i buildpack di Google Cloud:
Vai alla cartella contenente le origini.
Esegui il comando:
gcloud builds submit --pack image=IMAGE_URL
Sostituisci
IMAGE_URLcon un riferimento all'immagine container, ad esempious-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL segue il formato diLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.Attendi il completamento della build.
Creare un'immagine con i buildpack di Google Cloud utilizzando la riga di comando pack
Per creare un'immagine 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 origini.
Esegui il comando seguente per creare l'immagine ed eseguirne il push nel registro container supportato:
pack build --publish IMAGE_URL
Sostituisci
IMAGE_URLcon un riferimento all'immagine container, ad esempious-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL segue il formato diLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.Attendi il completamento di
pack.
Per ulteriori informazioni, consulta le istruzioni in Creare un'applicazione.
Passaggi successivi
Per eseguire il deployment dei container creati in Cloud Run, segui la procedura descritta in Eseguire il 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 di eseguire il deployment in Cloud Run. Per saperne di più, consulta Testare un servizio Cloud Run localmente.
Dopo aver creato o aggiornato un job utilizzando il container creato, 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.