Pipeline GitHub + ECS

Fazer deploy no ECS manualmente está ótimo na primeira vez. Depois disso, você precisa de um pipeline. O AWS CodePipeline com GitHub como fonte e CodeBuild cuida de todo o ciclo: mudança no código, build Docker, push para ECR, deploy no ECS.

TL;DR: Configure um pipeline CI/CD para ECS usando AWS CodePipeline com GitHub e CodeBuild.
Stack: AWS CodePipeline, CodeBuild, ECS, ECR, GitHub
Nível: Intermediário
Tempo de leitura: ~8 min

Visão geral dos passos

  1. No CodePipeline, crie um novo pipeline e nomeie.
  2. Selecione GitHub (Version 2) como fonte e conecte sua conta.
  3. Selecione repositório e branch. Habilite detecção de mudanças.
  4. Para build, selecione AWS CodeBuild com Ubuntu, Runtime Standard, nova service role e “Use a buildspec file.”
  5. Para deploy, selecione Amazon ECS, seu cluster e serviço.

buildspec.yml

version: 0.2

phases:
  pre_build:
    commands:
      - aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin CONTA.dkr.ecr.us-east-1.amazonaws.com
      - REPOSITORY_URI=CONTA.dkr.ecr.us-east-1.amazonaws.com/seu-repo
  build:
    commands:
      - docker build -t REPO:latest .
  post_build:
    commands:
      - docker push REPO:latest
      - printf '[{"name":"seu-container","imageUri":"REPO:latest"}]' > imagedefinitions.json
artifacts:
  files: imagedefinitions.json

O que você construiu

Um pipeline CI/CD funcionando: push no GitHub, CodePipeline dispara, CodeBuild constrói e envia imagem Docker para ECR, ECS faz deploy da nova task definition.

Próximos passos

  • Adicione aprovação manual entre build e deploy para produção.
  • Armazene URI do ECR como variável de ambiente do CodePipeline.
  • Use as fases do buildspec corretamente: pre_build para login, build para imagem, post_build para push e atualização.

Dúvidas ou feedback? Me encontre no LinkedIn ou GitHub.

Deixe um comentário