Esegui il build delle origini nei container

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

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:

  1. Vai alla cartella contenente le origini e il Dockerfile.

  2. 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 formato LOCATION-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:

  1. Vai alla cartella contenente le origini e Dockerfile.

  2. 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 formato LOCATION-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.

  3. 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 formato LOCATION-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:

  1. Vai alla cartella contenente le fonti.

  2. 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 formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .

  3. 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:

  1. Se non l'hai ancora fatto, installa Docker.

  2. Se non l'hai ancora fatto, installa pack.

  3. Vai alla cartella contenente le fonti.

  4. 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 formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .

  5. Attendi il completamento di pack.

Per ulteriori informazioni, leggi le istruzioni nella sezione Creare un'applicazione.

Passaggi successivi