Implantar um aplicativo conteinerizado no Cloud Run usando o Cloud Build

Nesta página, mostramos como usar o Cloud Build para implantar um aplicativo em contêineres no Cloud Run.


Para seguir as instruções da tarefa diretamente no editor do Cloud Shell, clique em Orientação:

Orientações


Antes de começar

  1. Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  3. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  4. Ative as APIs Cloud Build, Cloud Run, Artifact Registry, and Compute Engine.

    Ative as APIs

  5. Install the Google Cloud CLI.
  6. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  8. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  9. Ative as APIs Cloud Build, Cloud Run, Artifact Registry, and Compute Engine.

    Ative as APIs

  10. Install the Google Cloud CLI.
  11. To initialize the gcloud CLI, run the following command:

    gcloud init

Conceder permissões

O Cloud Build requer as permissões Administrador do Cloud Run e Usuário da conta de serviço do IAM antes de implantar uma imagem no Cloud Run.

  1. Abra uma janela de terminal.

  2. Defina variáveis de ambiente para armazenar o ID e o número do projeto:

    PROJECT_ID=$(gcloud config list --format='value(core.project)')
    PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')
    
  3. Conceda o papel Administrador do Cloud Run à conta de serviço do Cloud Build:

    gcloud projects add-iam-policy-binding $PROJECT_ID \
        --member=serviceAccount:$PROJECT_NUMBER@cloudbuild.gserviceaccount.com \
        --role=roles/run.admin
    
  4. Conceda o papel de Usuário da conta de serviço do IAM à conta de serviço do Cloud Build para a conta de serviço do ambiente de execução do Cloud Run:

    gcloud iam service-accounts add-iam-policy-binding \
        $PROJECT_NUMBER-compute@developer.gserviceaccount.com \
        --member=serviceAccount:$PROJECT_NUMBER@cloudbuild.gserviceaccount.com \
        --role=roles/iam.serviceAccountUser
    

Implantar uma imagem pré-criada

É possível configurar o Cloud Build para implantar no Cloud Run uma imagem pré-criada armazenada no Artifact Registry.

Para implantar uma imagem pré-criada:

  1. Abra uma janela do terminal, se já não estiver aberta.

  2. Crie um novo diretório chamado helloworld e navegue até ele:

    mkdir helloworld
    cd helloworld
    
  3. Crie um arquivo chamado cloudbuild.yaml com o conteúdo a seguir. Esse é o arquivo de configuração do Cloud Build. Ele contém instruções para o Cloud Build implantar a imagem chamada us-docker.pkg.dev/cloudrun/container/hello no serviço do Cloud Run chamado cloudrunservice.

    steps:
    - name: 'gcr.io/cloud-builders/gcloud'
      script: |
        gcloud run deploy cloudrunservice --image us-docker.pkg.dev/cloudrun/container/hello --region us-central1 --platform managed --allow-unauthenticated
  4. Implante a imagem executando o seguinte comando:

    gcloud builds submit --region=us-west2 --config cloudbuild.yaml
    

Quando a build for concluída, você verá uma resposta semelhante a esta:

DONE
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

ID                                    CREATE_TIME                DURATION  SOURCE                                                                                            IMAGES  STATUS
784653b2-f00e-4c4b-9f5f-96a5f115bef4  2020-01-23T14:53:13+00:00  23S       gs://cloudrunqs-project_cloudbuild/source/1579791193.217726-ea20e1c787fb4784b19fb1273d032df2.tgz  -       SUCCESS

Você acabou de implantar a imagem hello no Cloud Run.

Executar a imagem implantada

  1. Abra a página do Cloud Run no console do Google Cloud:

    Abrir a página "Cloud Run"

  2. Selecione o projeto e clique em Abrir.

    Você verá a página Serviços do Cloud Run.

  3. Na tabela, localize a linha com o nome cloudrunservice e clique em cloudrunservice.

    A página Detalhes do serviço de cloudrunservice é exibida.

  4. Para executar a imagem que você implantou no cloudrunservice, clique no URL:

    Captura de tela da página de detalhes do serviço do Cloud Run

A seguir