-
Notifications
You must be signed in to change notification settings - Fork 4
Deploy via AWS
Este projeto usa AWS Elastic Beanstalk para gerenciar as aplicações.
É recomendado usar o EB CLI para realização de deploys.
É necessário que o administrador (danielfireman) adicione crie uma conta na AWS e adicione ao grupo IAM de desenvolvedores.
Siga os passos no tutotial oficial para a instalação do EB CLI: https://github.com/aws/aws-elastic-beanstalk-cli-setup
eb init
Siga as instruções indicando:
- região: us-east-1
- suas credenciais AWS (access-id e access-key)
- aplicação: dadosjusbr-prod
- usando Docker
- Não precisa crir pares de chaves SSH agora
Caso exista algo errado, você deve remover o diretório .elasticbeanstalk
e executar eb init
novamente.
Para verificar se está tudo certo, rodar eb list
e ele deve listar os dois ambientes da aplicação dadosjusbr-prod:
- dadosjusbr-api
- dadosjusbr-site
O comando eb list
marca com um asterisco o ambiente corrente. Caso precise mudar, basta usar eb use {AMBIENTE}
.
Primeiramente, você deve subir a API do dadosjusbr localmente. Instruções aqui.
Você vai precisar do arquivo .env
na raiz do repositório. Ele uma versão modificada das variáveis de ambiente de produção, as quais podem ser obtidas com:
eb printenv
Substitua o api.dadosjusbr.org
por {endereço IP}:8081, que é o endereço local da API dadosjusbr.
Para obter o IP local use o comando:
hostname -I | cut -d" " -f1
Além do arquivo .env
, você vai precisar da variável de ambiente PORT
configurada. Para tal, você deve executar:
eb local setenv PORT=8080
Com isso, você pode executar o site localmente na porta 8080 através do seguinte comando:
eb local run
eb local run Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/create?fromImage=node&tag=lts-alpine": dial unix /var/run/docker.sock: connect: permission denied
$ sudo groupadd docker
$ sudo usermod -aG docker $USER
Reinicie a máquina
Após a reinicialização, verifique se consegue iniciar o docker:
$ docker run hello-world
Você pode encontrar mais informações aqui: https://stackoverflow.com/questions/48957195/how-to-fix-docker-got-permission-denied-issue
docker system prune
ou, para remover tudo mesmo:
docker system prune --all --force
O EBS tem algumas características importantes:
- Ele usa o comando
git archive
para realizar o empacotamento do artefato (zip bundle) que vai para produção, ou seja, nada que está no.gitignore
ou que não está comitado entra no artefato - Ele gera um arquivo
.env
com as propriedades de ambiente configuradas e coloca na raiz do projeto (nós fazemos uso disso no docker-compose.yaml)
Dito isso, para realizar o deploy, basta executar:
eb deploy
Para o site, a implantação demorará em torno de 4 minutos.
eb local setenv `cat .env | sed '/^#/ d' | sed '/^$/ d'`