Configurar contêineres

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Nesta página, descrevemos como configurar a porta do contêiner, o comando e os argumentos do ponto de entrada para os serviços do Cloud Run, além de como configurar o comando e os argumentos do ponto de entrada para jobs do Cloud Run.

Quando o Cloud Run inicia um contêiner, ele executa o comando entrypoint padrão e os argumentos de comando padrão da imagem. Se você quiser modificar os argumentos de ponto de entrada e comando padrão da imagem, use os campos command e args na configuração do contêiner. O campo command especifica o comando real executado pelo contêiner. O campo args especifica os argumentos passados para esse comando.

Configurar a porta do contêiner (serviços)

Qualquer mudança na configuração leva à criação de uma nova revisão. As próximas revisões também recebem automaticamente essa configuração, a menos que você faça atualizações explícitas para alterá-la.

Para os serviços do Cloud Run, o Cloud Run injeta a variável de ambiente PORT no contêiner. O contêiner precisa detectar a porta definida pela variável de ambiente PORT em vez de uma porta codificada específica. No entanto, se isso não for possível, configure quais solicitações de porta serão enviadas para o contêiner. As configurações de porta não se aplicam a jobs do Cloud Run.

Console

  1. Acessar o Cloud Run

  2. Clique em Criar serviço se estiver configurando um novo serviço em que fará uma implantação. Se você estiver configurando um serviço atual, clique nele e em Editar e implantar nova revisão.

  3. Se você estiver configurando um novo serviço, preencha a página inicial de configurações de serviço conforme desejado e clique em Contêiner, conexões, segurança para expandir a página de configuração do serviço.

  4. Clique na guia Contêiner.

    imagem

  5. Especifique a porta em que você quer que as solicitações sejam enviadas, se não for o valor padrão de "8080". Isso também define a variável de ambiente "PORT".

  6. Clique em Criar ou Implantar.

Linha de comando

É possível atualizar a configuração de porta de um serviço usando o seguinte comando:

gcloud run services update SERVICE --port PORT

Substitua:

  • SERVICE pelo nome do serviço;
  • PORT pela porta para enviar solicitações. Observe que a porta padrão é 8080.

Também é possível configurar portas durante a implantação usando o comando:

gcloud run deploy --image IMAGE_URL --port PORT

Substitua IMAGE_URL por uma referência à imagem de contêiner. Por exemplo, us-docker.pkg.dev/cloudrun/container/hello:latest.

YAML

É possível fazer o download e ver a configuração do serviço atual usando o comando gcloud run services describe --format export, que produz resultados limpos no formato YAML. Em seguida, modifique os campos descritos abaixo e faça upload do YAML modificado usando o comando gcloud run services replace. Modifique os campos somente conforme documentado.

  1. Para visualizar e fazer o download da configuração:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Atualize o atributo containerPort::

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

    Substitua:

    • SERVICE pelo nome do serviço do Cloud Run;
    • IMAGE_URL por uma referência à imagem de contêiner. Por exemplo, us-docker.pkg.dev/cloudrun/container/hello:latest;
    • PORT pela porta para enviar solicitações
    • REVISION por um novo nome de revisão ou excluí-lo (se houver). Se você fornecer um novo nome de revisão, ele precisará atender aos seguintes critérios:
      • Começa com SERVICE-
      • Contém apenas letras minúsculas, números e -
      • Não termina com um -
      • Não excede 63 caracteres
  3. Substitua o serviço pela nova configuração usando o seguinte comando:

    gcloud run services replace service.yaml

Configurar o comando e os argumentos do ponto de entrada do contêiner

É possível configurar comandos e argumentos de ponto de entrada para jobs e serviços do Cloud Run.

Para serviços do Cloud Run

Qualquer mudança na configuração leva à criação de uma nova revisão. As próximas revisões também recebem automaticamente essa configuração, a menos que você faça atualizações explícitas para alterá-la.

O comando e os argumentos do contêiner especificados modificam as imagens padrão ENTRYPOINT e CMD.

É possível definir comandos e argumentos de ponto de entrada usando o console do Google Cloud, a linha de comando gcloud ou um arquivo .yaml ao criar um novo serviço ou implantar uma nova revisão:

Console

  1. Acessar o Cloud Run

  2. Clique em Criar serviço se estiver configurando um novo serviço em que fará uma implantação. Se você estiver configurando um serviço atual, clique nele e em Editar e implantar nova revisão.

  3. Se você estiver configurando um novo serviço, preencha a página inicial de configurações de serviço conforme desejado e clique em Contêiner, conexões, segurança para expandir a página de configuração do serviço.

  4. Clique na guia Contêiner.

    imagem

  5. Especifique o comando que você quer que o contêiner execute, se não for o definido no contêiner, e, opcionalmente, especifique os argumentos para o comando entrypoint.

  6. Clique em Criar ou Implantar.

Linha de comando

É possível atualizar o comando inicial e os argumentos de um determinado serviço usando o seguinte comando:

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

Substitua:

  • COMMAND pelo comando com que o contêiner será iniciado se você não estiver usando o comando padrão;
  • ARG1 pelo argumento que você está enviando para o comando do contêiner. Use uma lista delimitada por vírgulas para mais de um argumento.

Também é possível especificar o ponto de entrada e os argumentos durante a implantação usando o comando:

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

Substitua IMAGE_URL por uma referência à imagem de contêiner. Por exemplo, us-docker.pkg.dev/cloudrun/container/hello:latest

YAML

É possível fazer o download e ver a configuração do serviço atual usando o comando gcloud run services describe --format export, que produz resultados limpos no formato YAML. Em seguida, modifique os campos descritos abaixo e faça upload do YAML modificado usando o comando gcloud run services replace. Modifique os campos somente conforme documentado.

  1. Para visualizar e fazer o download da configuração:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Atualize os atributos command e args:

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

    Substituir

    • IMAGE_URL por uma referência à imagem de contêiner. Por exemplo, us-docker.pkg.dev/cloudrun/container/hello:latest;
    • COMMAND pelo comando com que o contêiner será iniciado se você não estiver usando o comando padrão;
    • ARG1 pelo argumento que você está enviando para o comando do contêiner. Use uma lista delimitada por vírgulas para mais de um argumento.
  3. Substitua o serviço pela nova configuração usando o seguinte comando:

    gcloud run services replace service.yaml

Terraform

Adicione o seguinte código a um recurso google_cloud_run_service na configuração do Terraform. Substitua /server pelo comando usado para iniciar o contêiner e adicione os argumentos necessários à matriz 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 = []
    }
  }

Para aplicar a configuração do Terraform a um projeto do Google Cloud, siga estas etapas:

  1. Inicie o Cloud Shell.
  2. Defina o projeto do Google Cloud em que a configuração do Terraform será aplicada:
    export GOOGLE_CLOUD_PROJECT=PROJECT_ID
    
  3. Crie um diretório e abra um novo arquivo. O nome do arquivo precisa ter a extensão .tf, por exemplo: main.tf:
    mkdir DIRECTORY && cd DIRECTORY && nano main.tf
    
  4. Copie a amostra para main.tf.
  5. Revise e modifique os parâmetros de amostra para aplicar ao seu ambiente.
  6. Salve as mudanças pressionando Ctrl-x e depois y.
  7. Inicialize o Terraform:
    terraform init
  8. Revise a configuração e verifique se os recursos que o Terraform vai criar ou atualizar correspondem às suas expectativas:
    terraform plan

    Faça as correções necessárias na configuração.

  9. Para aplicar a configuração do Terraform, execute o comando a seguir e digite yes no prompt:
    terraform apply

    Aguarde até que o Terraform exiba a mensagem "Apply complete!".

  10. Abra seu projeto do Google Cloud para ver os resultados. No console do Google Cloud, navegue até seus recursos na IU para verificar se foram criados ou atualizados pelo Terraform.

Para jobs do Cloud Run

Para configurar o entrypoint de comando e os argumentos para jobs, siga estas etapas:

Console

  1. Acesse o Cloud Run

  2. Se você estiver configurando um novo job, clique na guia Jobs e preencha a página inicial de configurações do job conforme quiser. Se você estiver configurando um job, clique nele e em Editar.

  3. Clique em Contêiner, variáveis e secrets, conexões e segurança para expandir a página de propriedades do job.

  4. Clique na guia Geral.

    imagem

  5. Especifique o comando que você quer que o contêiner execute, se não for o definido no contêiner, e, opcionalmente, especifique os argumentos para o comando entrypoint.

  6. Clique em Criar ou Atualizar.

Linha de comando

  1. Para definir o comando inicial e os argumentos de um novo job:

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

    Substituir

    • JOB_NAME pelo nome do job.
    • COMMAND pelo comando com que o contêiner será iniciado se você não estiver usando o comando padrão;
    • ARG1 pelo argumento que você está enviando para o comando do contêiner ou use uma lista delimitada por vírgulas para mais de um argumento.
    • IMAGE_URL por uma referência à imagem de contêiner, por exemplo, us-docker.pkg.dev/cloudrun/container/job:latest;
  2. Para atualizar o comando e os argumentos para um job existente:

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

Como usar sinais de igual ou vírgulas em argumentos

Se você usar sinais de igual nos argumentos, insira-os usando o seguinte formato:

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

Se os argumentos usarem vírgulas, consulte Como configurar variáveis de ambiente para mais detalhes sobre como fazer escape.

Ver configurações do contêiner

Para ver as configurações atuais do contêiner para seu serviço do Cloud Run, faça o seguinte:

Console

  1. Acesse o Cloud Run

  2. Clique no serviço de seu interesse para abrir a página Detalhes do serviço.

  3. Clique na guia Revisões.

  4. No painel de detalhes à direita, a configuração de contêiner está listada na guia Geral.

Linha de comando

  1. Use o comando a seguir:

    gcloud run services describe SERVICE
  2. Localize a configuração de contêiner na configuração retornada.

Para ver as configurações atuais do contêiner para o job do Cloud Run, faça o seguinte:

Console

  1. Acessar jobs do Cloud Run

  2. Clique no job em que você tem interesse para abrir a página Detalhes do job.

  3. Clique na guia Configuração.

  4. Localize a definição do contêiner nos detalhes da configuração.

Linha de comando

  1. Use o comando a seguir:

    gcloud beta run jobs describe JOB_NAME
  2. Localize a configuração de contêiner na configuração retornada.