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
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.
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, redes, segurança para expandir a página de configuração do serviço.
Clique na guia Contêiner.
- 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".
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
IMAGE_URL por uma referência à imagem de contêiner, por
exemplo, us-docker.pkg.dev/cloudrun/container/hello:latest
; Ao usar o Artifact Registry,
o URL tem o seguinte formato: REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.
.
YAML
É possível fazer o download e conferir as configurações de serviço 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.
Para visualizar e fazer o download da configuração:
gcloud run services describe SERVICE --format export > service.yaml
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
. Ao usar o Artifact Registry, o URL tem o seguinte formato:REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. - 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
- Começa com
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
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.
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, redes, segurança para expandir a página de configuração do serviço.
Clique na guia Contêiner.
- 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.
Clique em Criar ou Implantar.
Linha de comando
Para atualizar o comando e os argumentos de inicialização de um serviço, faça o seguinte:
gcloud run services update SERVICE --command COMMAND --args ARG1,ARG-N
Substituir
- 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.
Para especificar o ponto de entrada e os argumentos durante a implantação de um serviço novo ou existente:
gcloud run deploy --image IMAGE_URL --command COMMAND --args ARG1,ARG-N
IMAGE_URL por uma referência à imagem de contêiner, por
exemplo, us-docker.pkg.dev/cloudrun/container/hello:latest
; Ao usar o Artifact Registry,
o URL tem o seguinte formato: REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.
Para limpar os comandos e argumentos do ponto de entrada que você definiu (restaurar para os padrões do contêiner), forneça strings vazias da seguinte maneira:
gcloud run deploy --image IMAGE_URL --command "" --args ""
YAML
É possível fazer o download e conferir as configurações de serviço 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.
Para visualizar e fazer o download da configuração:
gcloud run services describe SERVICE --format export > service.yaml
Atualize os atributos
command
eargs
:spec: containers: - 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
. Ao usar o Artifact Registry, o URL tem o seguinte formato:REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. - 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. Se você usar vários argumentos, especifique cada um em uma linha própria, por exemplo, ARG-N, como mostrado abaixo.
- IMAGE_URL por uma referência à imagem de contêiner. Por
exemplo,
Substitua o serviço pela nova configuração usando o seguinte comando:
gcloud run services replace service.yaml
Terraform
Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do 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
.
Para jobs do Cloud Run
Para configurar o entrypoint de comando e os argumentos para jobs, siga estas etapas:
Console
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.
Clique em Contêiner, variáveis e secrets, conexões e segurança para expandir a página de propriedades do job.
Clique na guia Geral.
- 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.
Clique em Criar ou Atualizar.
Linha de comando
Para definir o comando inicial e os argumentos de um novo job:
gcloud 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
;
Para atualizar o comando e os argumentos de um job existente:
gcloud run jobs update JOB_NAME --command COMMAND --args ARG1,ARG-N
YAML
Faça o download e veja a configuração do job que já existe usando o comando gcloud run jobs describe --format export
, que gera resultados limpos no formato YAML. Em seguida, modifique os campos descritos abaixo e faça upload do YAML modificado usando o comando gcloud run jobs replace
.
Modifique os campos somente conforme documentado.
Para visualizar e fazer o download da configuração:
gcloud run jobs describe JOB_NAME --format export > job.yaml
Atualize os atributos
args:
ecommand
: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
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. Se quiser, especifique outros argumentos, cada um em uma linha separada.
Também é possível especificar mais configurações, como variáveis de ambiente ou limites de memória.
Atualize a configuração do job que já existe:
gcloud run jobs replace job.yaml
Para limpar os comandos e argumentos do ponto de entrada que você definiu (restaurar para os padrões do contêiner), forneça strings vazias da seguinte maneira:
gcloud run jobs update JOB_NAME --command "" --args ""
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"
Se os argumentos usarem vírgulas, consulte Como configurar variáveis de ambiente para mais detalhes sobre como fazer escape.
Configurar ordem de inicialização do contêiner para implantações sidecar (serviços)
Para especificar a ordem de inicialização do contêiner em uma implantação sidecar, use o recurso de dependências de contêiner. Especifique os contêineres que têm dependências e liste os contêineres de que dependem: eles são iniciados primeiro. Os contêineres que não têm dependências são sempre iniciados primeiro e simultaneamente.
Se você usar sondagens de verificação de integridade, o Cloud Run inspecionará a integridade de um contêiner dependente, garantindo que ele seja aprovado com sucesso antes de iniciar o próximo contêiner. Se você não usar verificações de integridade, os contêineres serão iniciados na ordem especificada, mesmo que os contêineres de que eles dependem não sejam iniciados.
Durante a visualização, use o método YAML para configurar a ordem de inicialização do contêiner. Para especificar a ordem de inicialização:
YAML
É possível fazer o download e conferir as configurações de serviço 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.
Para visualizar e fazer o download da configuração:
gcloud run services describe SERVICE --format export > service.yaml
Atualize o atributo
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"]}'
Substituir
- CONTAINER1 pelo nome do primeiro contêiner que depende de um ou mais contêineres. Observe que é possível definir o nome do contêiner no YAML. O Cloud Run gerará um nome automaticamente se nenhum for especificado.
- CONTAINER2 pelo nome do contêiner que precisa ser iniciado antes de CONTAINER1.
- CONTAINER3 pelo nome do segundo contêiner que depende de um ou mais contêineres.
No exemplo do snippet YAML, CONTAINER2 é iniciado primeiro, CONTAINER1 é iniciado em seguida e CONTAINER3 é iniciado por último.
Substitua o serviço pela nova configuração usando o seguinte comando:
gcloud run services replace service.yaml
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
Clique no serviço de seu interesse para abrir a página Detalhes do serviço.
Clique na guia Revisões.
No painel de detalhes à direita, a configuração de contêiner está listada na guia Geral.
Linha de comando
Use o comando a seguir:
gcloud run services describe SERVICE
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
Clique no job em que você tem interesse para abrir a página Detalhes do job.
Clique na guia Configuração.
Localize a definição do contêiner nos detalhes da configuração.
Linha de comando
Use o comando a seguir:
gcloud run jobs describe JOB_NAME
Localize a configuração de contêiner na configuração retornada.