Aplicação simplificada de gerenciamento de bens para a disciplina de desenvolvimento para nuvem da UFC em 2022.2
O backend e frontend da aplicação estão empacotados em containers. Para facilitar a execução, utilizaremos o docker compose, que será responsável por criar as imagens dos containers e executá-los, iniciando toda a aplicação.
Primeiramente, clone o projeto com o comando git clone https://github.com/bgvinicius/gerenciamento-bens-cloud2022.git
Para executar o projeto, com o docker compose instalado (tipicamente já vem instalado em novas versões do docker), execute o comando abaixo:
docker compose up
ou docker-compose up
O comando acima irá criar as imagens necessárias do projeto, assim como baixar imagens de terceiros que usamos no projeto.
Este comando, irá ficar executando em primeiro plano no terminal, mas é possível executar a aplicação em segundo plano informando a flag -d
ao final do comando.
Uma vez que as imagens tenham sido baixadas e criadas com sucesso, o projeto é iniciado.
A API do projeto é acessível a partir do endereço http://localhost:8080
e o frontend é acessível a partir do endereço http://localhost:3000
.
PS: Em caso de erro, utilize a flag --build ao final do comando para garantir que as imagens sejam construídas. Caso o erro persista, siga os passos de troubleshooting.
PS2: É normal que o comando demore para executar pela primeira vez, pois as dependências precisam ser instaladas e não estão cacheadas ainda em sua máquina.
O projeto inicialmente foi construído para demonstrar uso de tecnologias de nuvem, como:
- AWS
- EC2
- AWS RDS
- DynamoDB
- S3
Além disso, o backend é feito em Spring Boot, e o frontend com React, sendo servido pelo Nginx. O banco relacionado escolhido foi o postgres.
A segunda fase do projeto, usa docker e docker compose para executar a aplicação.
Para tal, substituímos o S3 pelo Minio, e o DynamoDB usamos uma imagem do DynamoDBLocal mantida pela própria Amazon.
O Minio possui API compatível com o S3, de modo que foram necessárias mudanças mínimas em configurações para fazer o código funcionar com o Minio.
Para criar apenas as imagens do projeto, basta usar o comando docker compose build
ou docker-compose build
.
Para parar os containers em execução, use o comando docker compose stop
ou docker-compose stop
.
Para remover os containers parados, use o comando docker compose rm
ou docker-compose rm
.
Em caso de erros ao tentar usar o comando docker compose up
diretamente, siga os passos abaixo:
Use o comando docker compose stop
ou docker-compose stop
Use o comando docker compose rm
ou docker-compose rm
para remover os containers antigos
Use o comando docker compose build
ou docker-compose build
para criar novas imagens dos serviços
Use o comando docker compose up
ou docker-compose up
para executar a aplicação.
Por fim, verifique que tudo está funcionando corretamente.