Configurare i container

Questa pagina descrive come configurare la porta del container, il comando entrypoint e gli argomenti per i servizi Cloud Run e come configurare il comando e gli argomenti entrypoint per i job Cloud Run.

Quando Cloud Run avvia un container, esegue il comando entrypoint predefinito dell'immagine e gli argomenti del comando predefinito. Se vuoi eseguire l'override dell'entrypoint e degli argomenti di comando predefiniti dell'immagine, puoi utilizzare i campi command e args nella configurazione del container. Il campo command specifica il comando effettivo eseguito dal container. Il campo args specifica gli argomenti passati al comando.

Configura la porta del container (servizi)

Qualsiasi modifica alla configurazione porta alla creazione di una nuova revisione. Le revisioni successive riceveranno automaticamente questa impostazione di configurazione, a meno che non apporti aggiornamenti espliciti per modificarla.

Per i servizi Cloud Run, Cloud Run inserisce la variabile di ambiente PORT nel container. Il container deve rimanere in ascolto sulla porta definita dalla variabile di ambiente PORT anziché da una porta specifica con hardcoded. Tuttavia, se questo non è possibile, puoi configurare su quali richieste di trasferimento vengono inviate le immagini al container. Tieni presente che le impostazioni della porta non vengono applicate ai job Cloud Run.

Console

  1. Vai a Cloud Run

  2. Fai clic su Crea servizio se stai configurando un nuovo servizio in cui stai eseguendo il deployment. Se stai configurando un servizio esistente, fai clic sul servizio e poi su Modifica ed esegui il deployment di una nuova revisione.

  3. Se stai configurando un nuovo servizio, compila la pagina delle impostazioni del servizio iniziale come preferisci, quindi fai clic su Container, Networking, Security per espandere la pagina di configurazione del servizio.

  4. Fai clic sulla scheda Contenitore.

    immagine

    • Specifica la porta a cui inviare le richieste, se non il valore predefinito "8080". Imposta anche la variabile di ambiente "PORT".
  5. Fai clic su Crea o Esegui il deployment.

Riga di comando

Puoi aggiornare la configurazione della porta di un servizio utilizzando il seguente comando:

gcloud run services update SERVICE --port PORT

Sostituisci

  • SERVICE il nome del servizio.
  • PORT con la porta a cui inviare le richieste. Tieni presente che la porta predefinita è 8080.

Puoi configurare le porte anche durante il deployment utilizzando il comando:

gcloud run deploy --image IMAGE_URL --port PORT

Sostituisci IMAGE_URL con un riferimento all'immagine container, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest. Quando utilizzi Artifact Registry, l'URL ha il formato: REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. .

YAML

Puoi scaricare e visualizzare le configurazioni di servizio esistenti utilizzando il comando gcloud run services describe --format export, che genera risultati puliti in formato YAML. Successivamente, potrai modificare i campi descritti di seguito e caricare il file YAML modificato utilizzando il comando gcloud run services replace. Assicurati di modificare solo i campi come documentato.

  1. Per visualizzare e scaricare la configurazione:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Aggiorna l'attributo containerPort::

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          name: REVISION
        spec:
          containers:
          - image: IMAGE_URL
            ports:
            - containerPort: PORT
    

    Sostituisci

    • SERVICE con il nome del tuo servizio Cloud Run
    • IMAGE_URL con un riferimento all'immagine container, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest. Quando utilizzi Artifact Registry, l'URL ha il formato: REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • PORT con la porta a cui inviare richieste
    • REVISION con un nuovo nome di revisione o eliminalo (se presente). Se fornisci un nuovo nome della revisione, deve soddisfare i seguenti criteri:
      • Inizia con SERVICE-
      • Contiene solo lettere minuscole, numeri e -
      • Non termina con -
      • Non superare i 63 caratteri.
  3. Sostituisci il servizio con la nuova configurazione utilizzando il seguente comando:

    gcloud run services replace service.yaml

Configura il comando del punto di ingresso del container e gli argomenti

Puoi configurare comandi e argomenti entrypoint per i job e i servizi Cloud Run.

Per i servizi Cloud Run

Qualsiasi modifica alla configurazione porta alla creazione di una nuova revisione. Le revisioni successive riceveranno automaticamente questa impostazione di configurazione, a meno che non apporti aggiornamenti espliciti per modificarla.

Il comando e gli argomenti del container specificati sostituiscono l'immagine predefinita ENTRYPOINT e CMD.

Puoi impostare il comando entrypoint e gli argomenti utilizzando la console Google Cloud o la riga di comando gcloud oppure utilizzando un file .yaml quando crei un nuovo servizio o esegui il deployment di una nuova revisione:

Console

  1. Vai a Cloud Run

  2. Fai clic su Crea servizio se stai configurando un nuovo servizio in cui stai eseguendo il deployment. Se stai configurando un servizio esistente, fai clic sul servizio e poi su Modifica ed esegui il deployment di una nuova revisione.

  3. Se stai configurando un nuovo servizio, compila la pagina delle impostazioni del servizio iniziale come preferisci, quindi fai clic su Container, Networking, Security per espandere la pagina di configurazione del servizio.

  4. Fai clic sulla scheda Contenitore.

    immagine

    • Specifica il comando che vuoi che venga eseguito dal container, se non il comando definito nel container e, facoltativamente, gli argomenti per il comando entrypoint.
  5. Fai clic su Crea o Esegui il deployment.

Riga di comando

Per aggiornare il comando start e gli argomenti per un servizio esistente:

gcloud run services update SERVICE --command COMMAND --args ARG1,ARG-N

Sostituisci

  • COMMAND con il comando che il container deve avviare se non stai utilizzando il comando predefinito.
  • ARG1 con l'argomento che stai inviando al comando container, utilizza un elenco delimitato da virgole per più di un argomento.

Per specificare il punto di ingresso e gli argomenti durante il deployment di un servizio nuovo o esistente:

gcloud run deploy --image IMAGE_URL --command COMMAND --args ARG1,ARG-N

Sostituisci IMAGE_URL con un riferimento all'immagine container, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest. Quando utilizzi Artifact Registry, l'URL ha il formato: REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.

Per cancellare tutti i comandi e gli argomenti entrypoint impostati (ripristina i valori predefiniti del container), fornisci stringhe vuote come segue:

gcloud run deploy --image IMAGE_URL --command "" --args ""

YAML

Puoi scaricare e visualizzare le configurazioni di servizio esistenti utilizzando il comando gcloud run services describe --format export, che genera risultati puliti in formato YAML. Successivamente, potrai modificare i campi descritti di seguito e caricare il file YAML modificato utilizzando il comando gcloud run services replace. Assicurati di modificare solo i campi come documentato.

  1. Per visualizzare e scaricare la configurazione:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Aggiorna gli attributi command e args:

    spec:
      containers:
      - image: IMAGE_URL
        command:
        - COMMAND
        args:
        - "ARG1"
        - "ARG-N"
    

    Sostituisci

    • IMAGE_URL con un riferimento all'immagine container, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest. Quando utilizzi Artifact Registry, l'URL ha il formato: REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • COMMAND con il comando che il container deve avviare se non stai utilizzando il comando predefinito.
    • ARG1 con l'argomento che stai inviando al comando container. Se utilizzi più argomenti, specificali tutti su una riga separata, ad esempio come mostrato in ARG-N.
  3. Sostituisci il servizio con la nuova configurazione utilizzando il seguente comando:

    gcloud run services replace service.yaml

Terraform

Per informazioni su come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.

Aggiungi il codice seguente a una risorsa google_cloud_run_service nella configurazione Terraform. Sostituisci /server con il comando utilizzato per avviare il container e aggiungi eventuali argomenti necessari all'array args.

template {
  spec {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"

      # Container "entry-point" command
      # https://cloud.google.com/run/docs/configuring/containers#configure-entrypoint
      command = ["/server"]

      # Container "entry-point" args
      # https://cloud.google.com/run/docs/configuring/containers#configure-entrypoint
      args = []
    }
  }

Per job Cloud Run

Per configurare il punto di ingresso del comando e gli argomenti per i job:

Console

  1. Vai a Cloud Run

  2. Se stai configurando un nuovo job, fai clic sulla scheda Job e compila la pagina delle impostazioni del job iniziale come preferisci. Se stai configurando un job esistente, fai clic sul job e poi su Modifica.

  3. Fai clic su Container, variabili e secret, connessioni, sicurezza per espandere la pagina delle proprietà del job.

  4. Fai clic sulla scheda Generale.

    immagine

    • Specifica il comando che vuoi che venga eseguito dal container, se non il comando definito nel container e, facoltativamente, gli argomenti per il comando entrypoint.
  5. Fai clic su Crea o Aggiorna.

Riga di comando

  1. Per impostare il comando start e gli argomenti per un nuovo job:

    gcloud run jobs create JOB_NAME --image IMAGE_URL --command COMMAND --args ARG1,ARG-N

    Sostituisci

    • JOB_NAME con il nome del job.
    • COMMAND con il comando che il container deve avviare se non stai utilizzando il comando predefinito.
    • ARG1 con l'argomento che stai inviando al comando container oppure utilizza un elenco delimitato da virgole per più di un argomento.
    • Sostituisci IMAGE_URL con un riferimento all'immagine container, ad esempio us-docker.pkg.dev/cloudrun/container/job:latest.

Per aggiornare il comando e gli argomenti per un job esistente:

gcloud run jobs update JOB_NAME --command COMMAND --args ARG1,ARG-N 

YAML

Scarica e visualizza la configurazione del job esistente utilizzando il comando gcloud run jobs describe --format export, che genera risultati puliti in formato YAML. Successivamente, modifica i campi descritti di seguito e carica il file YAML modificato utilizzando il comando gcloud run jobs replace. Assicurati di modificare solo i campi come documentato.

  1. Per visualizzare e scaricare la configurazione:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Aggiorna gli attributi args: e command:

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB_NAME
    spec:
      template:
        spec:
          template:
            spec:
              containers:
              - args:
                - 'ARG1'
                - 'ARG-N'
                command:
                - COMMAND
                image: IMAGE

    Sostituisci

    • COMMAND con il comando che il container deve avviare se non stai utilizzando il comando predefinito.
    • ARG1 con l'argomento che stai inviando al comando container. Facoltativamente, puoi specificare argomenti aggiuntivi in righe separate.

    Puoi anche specificare altre configurazioni come variabili di ambiente o limiti di memoria.

  3. Aggiorna la configurazione del job esistente:

    gcloud run jobs replace job.yaml

Per cancellare tutti i comandi e gli argomenti entrypoint impostati (ripristina i valori predefiniti del container), fornisci stringhe vuote come segue:

gcloud run jobs update JOB_NAME --command "" --args "" 

Utilizzo di simboli di uguale o virgole negli argomenti

Se utilizzi segni uguali negli argomenti, forniscili utilizzando il seguente formato:

gcloud run deploy  \
  --args="--repo-allowlist=github.com/example/example_demo"

Se i tuoi argomenti utilizzano virgole, consulta la configurazione delle variabili di ambiente per i dettagli sull'escape.

Configurare l'ordine di avvio del container per i deployment sidecar (servizi)

Per specificare l'ordine di avvio del container in un deployment sidecar, utilizza la funzionalità delle dipendenze dei container. Puoi specificare i container che hanno dipendenze ed elencare i container da cui dipendono: questi container vengono avviati per primi. I container che non hanno dipendenze vengono sempre avviati per primi e contemporaneamente.

Tieni presente che se utilizzi probe di controllo di integrità, Cloud Run controlla l'integrità di un container dipendente, assicurandoti che venga superato correttamente prima di avviare il container successivo. Se non utilizzi i controlli di integrità, i container vengono avviati nell'ordine specificato anche se i container dipendono dal mancato avvio.

Durante l'anteprima, devi utilizzare il metodo YAML per configurare l'ordine di avvio dei container. Per specificare l'ordine di avvio:

YAML

Puoi scaricare e visualizzare le configurazioni di servizio esistenti utilizzando il comando gcloud run services describe --format export, che genera risultati puliti in formato YAML. Successivamente, potrai modificare i campi descritti di seguito e caricare il file YAML modificato utilizzando il comando gcloud run services replace. Assicurati di modificare solo i campi come documentato.

  1. Per visualizzare e scaricare la configurazione:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Aggiorna l'attributo container-dependencies:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      annotations:
        run.googleapis.com/launch-stage: BETA
      name: SERVICE
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/container-dependencies: '{"CONTAINER1":["CONTAINER2"], "CONTAINER3":["CONTAINER1","CONTAINER2"]}'
    

    Sostituisci

    • CONTAINER1 con il nome del primo container che dipende da uno o più container. Tieni presente che puoi impostare il nome del container in YAML: Cloud Run genera automaticamente un nome se non ne è specificato uno.
    • CONTAINER2 con il nome del contenitore, che deve essere avviato prima del giorno CONTAINER1.
    • CONTAINER3 con il nome del secondo container che dipende da uno o più container.

    Nell'esempio mostrato nello snippet YAML, CONTAINER2 viene avviato per primo, CONTAINER1 viene avviato per secondo e CONTAINER3 viene avviato per ultimo.

  3. Sostituisci il servizio con la nuova configurazione utilizzando il seguente comando:

    gcloud run services replace service.yaml

Visualizza le impostazioni del contenitore

Per visualizzare le impostazioni attuali del container per il tuo servizio Cloud Run:

Console

  1. Vai a Cloud Run

  2. Fai clic sul servizio che ti interessa per aprire la pagina Dettagli del servizio.

  3. Fai clic sulla scheda Revisioni.

  4. Nel riquadro dei dettagli a destra, l'impostazione del contenitore è elencata nella scheda Generali.

Riga di comando

  1. Utilizza il comando seguente:

    gcloud run services describe SERVICE
  2. Individua l'impostazione del container nella configurazione restituita.

Per visualizzare le impostazioni attuali del container per il tuo job Cloud Run:

Console

  1. Vai ai job Cloud Run

  2. Fai clic sul job che ti interessa per aprire la pagina Dettagli job.

  3. Fai clic sulla scheda Configuration (Configurazione).

  4. Individua l'impostazione del container nei dettagli di configurazione.

Riga di comando

  1. Utilizza il comando seguente:

    gcloud run jobs describe JOB_NAME
  2. Individua l'impostazione del container nella configurazione restituita.