Creazione di origini per i container

Cloud Run supporta il deployment diretto del codice sorgente, tuttavia puoi anche compilare il codice sorgente in un'immagine container e poi eseguire il deployment di questa immagine container in Cloud Run.

Casi d'uso comuni per il disaccoppiamento delle operazioni di compilazione e deployment:

  • Integrazione e distribuzione continue: gli sviluppatori creano e inviano codice in un repository di origine, un sistema CI/CD compila automaticamente questo codice sorgente in un contenitore, esegue test e lo esegue automaticamente in un ambiente di gestione temporanea.
  • Infrastructure as Code: le risorse Cloud Run gestite utilizzando YAML o Terraform fanno riferimento a un URL immagine container. Il codice sorgente scritto dagli sviluppatori deve essere integrato in un'immagine container.

Cloud Run accetta le immagini container create con qualsiasi strumento in grado di compilarle, a condizione che 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.

Questa pagina descrive diversi modi per creare immagini contenitore:

  • Utilizzo di un Dockerfile
  • Utilizzo dei buildpack di Google Cloud

Prima di iniziare

Creazione utilizzando un Dockerfile

Prima di compilare le origini in un'immagine container ("containerizzazione") localmente con Docker o Cloud Build, è necessario che sia presente un Dockerfile insieme alle origini. Gli esempi Hello World contengono applicazioni di esempio e Dockerfile in molte lingue popolari.

Se utilizzi i file Dockerfile, puoi utilizzare uno dei seguenti metodi per la compilazione:

  • Esegui la compilazione utilizzando Cloud Build
  • Esegui il build in locale utilizzando Docker

Creazione di pacchetti con Cloud Build

Puoi creare l'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 del 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 ha la forma LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .

Per suggerimenti su come migliorare il rendimento delle build, consulta Accelerare le build

Creazione di build in locale ed esecuzione di push utilizzando Docker

Se hai installato Docker 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 del 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 ha la forma 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 registry dei container supportato:

    docker push IMAGE_URL

    Sostituisci IMAGE_URL con un riferimento all'immagine del 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 ha la forma LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .

Per escludere i file locali da questa procedura, segui le istruzioni per il file di configurazione .dockerignore.

Creazione utilizzando i buildpack di Google Cloud

I buildpack di Google Cloud sono un insieme di buildpack compatibili con CNCF che compilano il codice sorgente in immagini container progettate per essere eseguite su Google Cloud piattaforme di container, incluso Cloud Run.

Per un elenco delle lingue supportate, consulta la documentazione dei buildpack di Google Cloud.

Creazione con i buildpack di Google Cloud utilizzando Cloud Build

Per eseguire il build con i buildpack di Google Cloud:

  1. Vai alla cartella contenente le origini.

  2. Esegui il comando:

    gcloud builds submit --pack image=IMAGE_URL

    Sostituisci IMAGE_URL con un riferimento all'immagine del 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 ha la forma LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .

  3. Attendi il completamento della build.

Creazione con i buildpack di Google Cloud utilizzando la riga di comando pack

Per eseguire il build utilizzando il comando pack:

  1. Se non lo hai ancora fatto, installa Docker.

  2. Se non lo hai ancora fatto, installa pack.

  3. Vai alla cartella contenente le origini.

  4. Esegui il seguente comando per eseguire la compilazione ed eseguire il push nel tuo registry dei container supportato:

    pack build --publish IMAGE_URL

    Sostituisci IMAGE_URL con un riferimento all'immagine del 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 ha la forma LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .

  5. Attendi il completamento di pack.

Per ulteriori informazioni, leggi le istruzioni riportate in Creazione di un'applicazione.

Passaggi successivi