Este é o projeto backend do sistema para realização de pedidos e entregas de encomendas de um restaurante desenvolvido na semana Dev Superior 2.0, ministrado pelo prof. Nélio Lopes.
Este projeto abarca melhorias adicionais feitas como inclusão do Docker, atualização para o Spring Boot 3, Java 21 e outros.
Tecnologia utilizada:
-
Java 21
-
Spring Boot 3
- docker;
- docker compose;
Na pasta raíz do projeto:
docker compose -f docker-compose-dev.yml up -d --build
docker compose down
Este projeto está com um mecanismo de CI/CD configurado para realizar o deploy em uma instância EC2 da Amazon a cada commit feito.
A instância precisa ter instalado nela o 'docker' e o 'docker compose'.
Ainda, na pasta /home/ubuntu é requerido a existência do diretório dsdeliver, e dentro dela o diretório nginx/conf.d.
Dentro desse diretório do nginx é necessário ter um arquivo semelhante ao default.conf deste projeto, porém com a URL adaptada para o ambiente de produção. No caso do EC2 é algo como http://ec2-IP-DA-INSTANCIA.REGIAO-DA-INSTANCIA.compute.amazonaws.com/.
Para modificar a lógica de CI/CD, editar o arquivo em .github/workflows/deploy.yml
Existem alguns secrets utilizados que devem ser configurados no repositório:
- HOST: IP ou domínio da instância EC2;
- KEY: chave privada de acesso ssh à instância EC2;
- PORT: socket de acesso à instância EC2;
- PWD_DOCKER_HUB: senha ou token da conta no Docker Hub;
- USERNAME: usuário da instância EC2;