Crea origini per i 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 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 \
            --async
    
  • Puoi configurare Docker per accedere ad Artifact Registry utilizzando l' helper delle credenziali gcloud CLI:

    gcloud auth configure-docker LOCATION-docker.pkg.dev
    Sostituisci LOCATION con il nome della regione del repository container, ad esempio us-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:

  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 di LOCATION-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:

  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 di 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 di LOCATION-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:

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

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

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

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

  3. Vai alla cartella contenente le origini.

  4. Esegui il comando seguente per creare l'immagine ed eseguirne il push nel registro 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 di LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .

  5. Attendi il completamento di pack.

Per ulteriori informazioni, consulta le istruzioni in Creare un'applicazione.

Passaggi successivi