Como configurar contêineres

Saiba como configurar a porta do contêiner e o comando e os argumentos do ponto de entrada do contêiner.

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 comando e o ponto de entrada 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 transmitidos para esse comando.

Como configurar a porta do contêiner

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

Console

  1. Acesse o Cloud Run for Anthos no console do Google Cloud:

    Acessar o Cloud Run for Anthos

  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 uma nova revisão.

  3. Em Configurações avançadas, clique em Contêiner.

    imagem

  4. 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.

  5. Clique em Avançar para acessar a próxima seção.

  6. Na seção Configurar como este serviço é acionado, selecione qual conectividade você quer usar para invocar o serviço.

  7. Clique em Criar para implantar a imagem no Cloud Run for Anthos e aguarde a conclusão da implantação.

Linha de comando

  • Para serviços existentes, atualize uma configuração de porta executando o comando gcloud run services update com os parâmetros a seguir:

    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.
  • Para novos serviços, defina a porta executando o comando gcloud run deploy com o parâmetro --port:

    gcloud run deploy SERVICE --image=IMAGE_URL --port PORT

    Substitua:

    • SERVICE pelo nome do serviço;
    • IMAGE_URL por uma referência à imagem de contêiner. Por exemplo, gcr.io/myproject/my-image:latest;
    • PORT pela porta para a qual você quer enviar solicitações. A porta padrão é 8080.

YAML

Faça o download da configuração de um serviço existente para um arquivo YAML com o comando gcloud run services describe usando a sinalização --format=export. Em seguida, modifique o arquivo YAML e implante essas alterações com o comando gcloud beta run services replace. Modifique apenas os atributos especificados.

  1. Faça o download da configuração do serviço em um arquivo chamado service.yaml no espaço de trabalho local:

    gcloud run services describe SERVICE --format export > service.yaml

    Substitua SERVICE pelo nome do serviço do Cloud Run for Anthos.

  2. No seu arquivo local, atualize o atributo containerPort::

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

    Replace

    • IMAGE_URL por uma referência à imagem de contêiner. Por exemplo, gcr.io/myproject/my-image:latest;
    • PORT pela porta para a qual você quer enviar solicitações.
  3. Substitua o serviço pela nova configuração usando o seguinte comando:

    gcloud beta run services replace service.yaml

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

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.

Quando o Cloud Run for Anthos inicia um contêiner, ele executa o comando de ponto de entrada padrão da imagem. Para especificar ou substituir o comando entrypoint e os argumentos definidos na imagem do contêiner, defina as configurações command e args na configuração do contêiner do Cloud Run para Anthos.

É possível configurar comandos de ponto de entrada, argumentos ou ambos. O comando especificado no Cloud Run for Anthos modifica qualquer comando de ponto de entrada definido na imagem do contêiner. Se você optar por especificar apenas os argumentos, esses argumentos serão transmitidos e executados pelo comando entrypoint definido na imagem do contêiner.

No Cloud Run for Anthos, é possível configurar comandos e argumentos de ponto de entrada usando o console do Google Cloud, a Google Cloud CLI ou um arquivo YAML ao implantar um novo serviço, atualizar um serviço atual ou implante uma revisão:

Console

  1. Acesse o Cloud Run for Anthos no console do Google Cloud:

    Acessar o Cloud Run for Anthos

  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 uma nova revisão.

  3. Em Configurações avançadas, clique em Contêiner.

    imagem

  4. Especifique o comando entrypoint e os argumentos que você quer que o contêiner execute durante a inicialização.

  5. Clique em Avançar para acessar a próxima seção.

  6. Na seção Configurar como este serviço é acionado, selecione qual conectividade você quer usar para invocar o serviço.

  7. Clique em Criar para implantar a imagem no Cloud Run for Anthos e aguarde a conclusão da implantação.

Linha de comando

Opções de parâmetros de comando

  • Para especificar um argumento que contenha uma vírgula (,), escape cada ARG com um delimitador diferente. Por exemplo, se você usar @:
    --args "^@^arg,with,commas@anotherarg@ARG3..."
  • Para especificar vários conjuntos de pares de chave-valor, é possível especificar vários parâmetros de legibilidade. Exemplo:
    [...]
    --args "ARG1" \
    --args "ARG2" \
    --args "ARG3"
  • Para usar sinais de igual (=) nos argumentos, é preciso especificar cada argumento usando o seguinte formato:
    gcloud run services ...  \
      --args "--repo-allowlist=github.com/example/example_demo" \
      --args "--gh-webhook-secret=XX"

  • Para serviços atuais, atualize o comando entrypoint executando o comando gcloud run services update com os seguintes parâmetros:

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

    Substitua:

    • SERVICE pelo nome do serviço;
    • Opcional: COMMAND com o comando que você quer que o contêiner seja executado durante a inicialização.
    • Opcional: ARG1 com um ou mais argumentos para o comando que é executado durante a inicialização. Use uma lista delimitada por vírgulas para vários argumentos. Como formatar seus argumentos.
  • Para novos serviços, defina o comando entrypoint executando o comando gcloud run deploy com o parâmetro --command:

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

    Substitua:

    • SERVICE pelo nome do serviço;
    • IMAGE_URL por uma referência à imagem de contêiner. Por exemplo, gcr.io/myproject/my-image:latest;
    • Opcional: COMMAND com o comando que você quer que o contêiner seja executado durante a inicialização.
    • Opcional: ARG1 com um ou mais argumentos para o comando que é executado durante a inicialização. Use uma lista delimitada por vírgulas para vários argumentos. Como formatar seus argumentos.

YAML

Faça o download da configuração de um serviço existente para um arquivo YAML com o comando gcloud run services describe usando a sinalização --format=export. Em seguida, modifique o arquivo YAML e implante essas alterações com o comando gcloud beta run services replace. Modifique apenas os atributos especificados.

  1. Faça o download da configuração do serviço em um arquivo chamado service.yaml no espaço de trabalho local:

    gcloud run services describe SERVICE --format export > service.yaml

    Substitua SERVICE pelo nome do serviço do Cloud Run for Anthos.

  2. No seu arquivo local, atualize os atributos command e args:

    apiVersion: serving.knative.dev/v1
    kind: Service
    spec:
      template:
        spec:
          containers:
          - image: IMAGE_URL
            command:
            - COMMAND
            args:
            - "ARG1"
            - "ARG-N"
    

    Substitua:

    • IMAGE_URL por uma referência à imagem de contêiner. Por exemplo, gcr.io/myproject/my-image:latest;
    • Opcional: COMMAND com o comando que você quer que o contêiner seja executado durante a inicialização.
    • Opcional: ARG1 com um ou mais argumentos para o comando que é executado durante a inicialização. 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 beta run services replace service.yaml