Pipelines

1. ECR - Criação do Repositório

  1. Acessar o ECR
  2. Clicar em Create Repository
  3. Setar apenas o nome -> clicar em Create Repository
  4. Entrar no repositório
  5. Clicar em View push commands
  6. Colar a pasta cloudformation e os arquivos appspec.yml, buildspec.yml e taskdef.json dentro do projeto
  7. Renomear os arquivos dentro do cloudformation para os nomes referenciados a este projeto
  8. Copiar os comandos exibidos no View push commands (passo 5)
  9. Colar no terminal em que estiver rodando o repositório: aws ecr get-login-password --region ... --profile RESPECTIVOPERFIL | docker login --username AWS --password-stdin XXXXXX.dkr.ecr...amazonaws.com (atentar-se ao --profile )
  10. Comando 1: Buildar a aplicação docker build -t NOMEDAIMAGEM .
  11. Comando 2: Tagear a imagem com o comando obtido na AWS docker tag NOMEDAIMAGEM:latest XXXXXX.dkr.ecr...amazonaws.com/NOMEDAIMAGEM:latest
  12. Comando 3: Enviar a imagem com o comando obtido na AWS docker push XXXXXX.dkr.ecr...amazonaws.com/NOMEDAIMAGEM:latest

2. Cloudformation

  1. Acessar o CloudFormation
  2. Em cloudformation/development/ecs/ecs-Service-...-.yml editar a Description:
  3. Alterar a Image pela imagem criada/URL no ECR (linha 30)
  4. Alterar o ServiceName para o mesmo nome do repositório
  5. No cloudformation, ir até Create Stack -> With new resources (standart) -> Next -> Upload a template file -> Importar o arquivo .yml editado anteriormente
  6. Stack Name: ecs-service-NOMEDOSERVICO-qas
  7. Next
  8. Tagear o projeto
  9. Check I acknowledge that AWS CloudFormation might create IAM resources with custom names. -> Next

3. Pipeline

  1. Editar o arquivo CodePipeline-...yml
  • ApplicationName (Nome da Pipeline da aplicação)
  • EcsStackName (Nome dado ao ECS anteriormente)
  • CodeCommitRepository (Nome do repositório no CodeCommit)
  • SourceBranch (Branch padrão)
  • EcrImageRepo (Nome do repositório no ECR)
  1. Acessar o CloudFormation
  2. No cloudformation, ir até Create Stack -> With new resources (standart) -> Next -> Upload a template file -> Importar o arquivo CodePipeline-....yml editado anteriormente
  3. Stack Name: codepipeline-ecs-NOMEDOSERVICO-qas
  4. Next
  5. Tagear o projeto
  6. Next
  7. Check I acknowledge that AWS CloudFormation might create IAM resources with custom names. -> Next

4. Redirecionar DNS

Acessar Documentação