Boa noite, galera! Compartilhando com vocês a resolução dos problemas.
Neste projeto constei 2 problemas. Um referente ao .jar faltando e outro referente ao banco de dados. Vou mostrar os problemas, explicando o porque e a resolução!
Problema 1: Projeto sem o .jar
Ao executar o comando docker-compose up ele consta o primeiro problema ao copiar o .jar
Isso acontece pois o projeto não foi compilado e não foi gerado um novo .jar. Quando executamos o docker-compose, o container não consegue encontrar e exibe o erro.
ANTES: Ajustar no application-prod.properties as seguintes configurações para que não dê erro ao localizar banco dentro do docker:
spring.redis.host=redis-forum-api
spring.datasource.url=jdbc:mysql://mysql-forum-api:3306/forum
Solução: Basta dar um mvn clean package para que o projeto seja buildado e gerado um novo jar na pasta Target
Estou usando o IntelliJ, mas pode ser por onde estiver mais acostumado.
Com o projeto perfeitamente compilado e com o Jar gerado, podemos executar novamente o comando: docker-compose up -d
Problema 2: Bad Request ao tentar acessar http://localhost/topicos
Ao acessar o endereço o seguinte erro é apresentado:
Para ver mais detalhes do que aconteceu, precisamos acessar os logs da aplicação de api! Para isso, basta usar o comando: docker container logs app-forum-api Analisando os logs, percebemos que a tabela topico não existe!
Olhando a pasta aula_3/mysql, foi notado que não existe um arquivo .sql. Por isso o banco não foi gerado! No projeto anterior o arquivo existia, e por conta disso, não houve problemas.
Solução: Copiar arquivo database.sql do projeto anterior, que se encontra na pasta prometheus-grafana\mysql, para a pasta do projeto atual, em aula_3/mysql.
Agora precisamos parar o projeto com o comando docker-compose down Apagar TODAS as imagens geradas para evitar possível sujeira: docker rmi -f $(docker images -qa) CUIDADO: comando remove TODAS as imagens! Executar o docker compose novamente para gerar novas imagens: docker-compose up -d
Feito! Com isso o projeto funciona corretamente
Espero ter ajudado, galerinha! E até uma próxima!