Estudos

Cloud Build, Cloud Run e Docker para implementação contínua

Pré-requisitos:

  • Conta no Google Cloud Platform (GCP)
  • Docker instalado
  • Repositório no GitHub

Repositório que pode ser usado para auxiliar e como exemplo: https://github.com/camilla-m/descomplicando-devops.git

Passo 1: Criar um projeto Node.js

Para este passo, você pode seguir este tutorial: https://nodejs.org/en/docs/guides/nodejs-docker-webapp

Passo 2: Configurar o Google Cloud Platform (GCP)

Acesse o Google Cloud Console (https://console.cloud.google.com).

Crie um novo projeto ou selecione um projeto existente.

Ative as APIs necessárias: Google Cloud Build API e Google Cloud Run API.

Passo 3: Configurar a pipeline no GCP

Crie um arquivo cloudbuild.yaml na pasta raiz do seu projeto com o seguinte conteúdo:

steps:
  # Build the Docker image
  - name: 'gcr.io/cloud-builders/docker'
    args: ['build', '-t', 'us-central1-docker.pkg.dev/$PROJECT_ID/hello-repo/cicd-teste:1.0', '.']
  # Push the Docker image to Artifact Registry
  - name: 'gcr.io/cloud-builders/docker'
    args: ['push', 'us-central1-docker.pkg.dev/$PROJECT_ID/hello-repo/cicd-teste:1.0']
  # Deploy to Cloud Run
  - name: 'gcr.io/cloud-builders/gcloud'
    args:
      - 'run'
      - 'deploy'
      - 'minha-aplicacao'
      - '--image=us-central1-docker.pkg.dev/$PROJECT_ID/hello-repo/cicd-teste:1.0'
      - '--platform=managed'
      - '--region=us-central1'
      - '--allow-unauthenticated'
options:
  logging: CLOUD_LOGGING_ONLY

Certifique-se de substituir cicd-teste pelo nome da imagem Docker que você definiu e substitua minha-aplicacao pelo nome desejado para o serviço Cloud Run. Mude $PROJECT_ID pelo ID do seu projeto no GCP.

Salve o arquivo cloudbuild.yaml.

Passo 4: Configurar a integração com o GitHub

No Google Cloud Console, vá para o serviço Cloud Build na parte de Gatilhos.

Clique em “Configurar conexão” e siga as instruções para conectar sua conta do GitHub.

Selecione o repositório do GitHub que contém sua aplicação Node.js.

Passo 5: Ativar a pipeline de implantação automática

No Google Cloud Console, vá para o serviço Cloud Build e Gatilhos.

Clique em “Configurar disparador” para criar um novo disparador.

Defina as condições de acionamento do disparador, por exemplo, quando há alterações na branch principal do repositório do GitHub.

Escolha a opção “Detecção automática” para usar o arquivo de configuração que você criou anteriormente.

Clique em “Criar” para criar o disparador.

Agora, quando você fizer push para a branch principal do seu repositório do GitHub, a pipeline do Google Cloud Build será acionada. 

Ela construirá a imagem Docker, fará o push para o Google Container Registry e implantará a aplicação no Cloud Run.

Passo 6: Ativar acesso sem autenticação

Apesar de subir a aplicação a cada push, substituindo o cloudbuild.yaml com a informação do seu projeto e disponibilizando uma URL para acesso, provavelmente você vai se deparar com um erro de 403 – forbidden. Para isto, basta rodar:

gcloud run services add-iam-policy-binding minha-aplicacao \
    --member="allUsers" \
    --role="roles/run.invoker"

Lembrando que minha-aplicacao é o nome da sua aplicação do Cloud Run. Vai pedir em qual região liberar esse acesso. Como estamos trabalhando com us-central1, vamos digitar 29 e dar Enter.

Ao acessar a URL da aplicação no Cloud Run agora, provavelmente já está disponível e você lerá a mensagem do seu Node.js.

You Might Also Like

No Comments

Leave a Reply