Oi Jorge!
Tudo bem?
Dando uma lida no output de erro, verifiquei o seguintes pontos:
Existe um diretório chamado prometheus.yml, e ele não existe no projeto e nem nos pacotes liberados para download, creio que seja dervado de alguma configuração residual que você fez.
Existe um backup do arquivo docker-compose que você criou, chamado docker-compose_ant.yml e um arquivo atual, chamado docker-compose.yaml.
Partindo dessa observação, peço que siga os seguintes passos.
- Valide a sintaxe do arquivo docker-compose.yaml conforme o bloco de código disponível abaixo dessa lista
- Remova a configuração residual, ou seja, remova o diretório prometheus.yml e o arquivo dpcker-compose_ant.yml
Segue o código que deve estar no seu arquivo docker-compose.yml
version: '3'
networks:
database:
internal: true
cache:
internal: true
api:
internal: true
monit:
proxy:
services:
redis-forum-api:
image: redis
container_name: redis-forum-api
restart: unless-stopped
expose:
- 6379
networks:
- cache
mysql-forum-api:
image: mysql:5.7
container_name: mysql-forum-api
restart: unless-stopped
environment:
MYSQL_DATABASE: 'forum'
MYSQL_USER: 'forum'
MYSQL_PASSWORD: 'Bk55yc1u0eiqga6e'
MYSQL_RANDOM_ROOT_PASSWORD: 'yes'
MYSQL_ROOT_HOST: '%'
volumes:
- ./mysql:/docker-entrypoint-initdb.d
expose:
- 3306
networks:
- database
depends_on:
- redis-forum-api
app-forum-api:
build:
context: ./app/
dockerfile: Dockerfile
image: app-forum-api
container_name: app-forum-api
restart: unless-stopped
networks:
- api
- database
- cache
depends_on:
- mysql-forum-api
healthcheck:
test: "curl -sS http://app-forum-api:8080/actuator/health"
interval: 1s
timeout: 30s
retries: 60
proxy-forum-api:
image: nginx
container_name: proxy-forum-api
restart: unless-stopped
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
- ./nginx/proxy.conf:/etc/nginx/conf.d/proxy.conf
ports:
- 80:80
networks:
- proxy
- api
depends_on:
- app-forum-api
prometheus-forum-api:
image: prom/prometheus:latest
container_name: prometheus-forum-api
restart: unless-stopped
volumes:
- ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
- ./prometheus/prometheus_data:/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
- '--web.console.libraries=/etc/prometheus/console_libraries'
- '--web.console.templates=/etc/prometheus/consoles'
- '--web.enable-lifecycle'
ports:
- 9090:9090
networks:
- monit
- api
depends_on:
- proxy-forum-api
client-forum-api:
build:
context: ./client/
dockerfile: Dockerfile
image: client-forum-api
container_name: client-forum-api
restart: unless-stopped
networks:
- proxy
depends_on:
- proxy-forum-api
Agora, assegure que o conteúdo do seu diretório prometheus, seja igual ao do pacote disponibilizado para download na aula 03, contendo o seguinte conteúdo:
Assegure que as configurações do seu arquivo application-prod.properties do projeto maven, estão configuradas para se comunicarem com os containers e não mais com localhost, validando os endpoints com esta configuração:
# Redis cache config
spring.cache.type=redis
**spring.redis.host=redis-forum-api**
# datasource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
**spring.datasource.url=jdbc:mysql://mysql-forum-api:3306/forum**
spring.datasource.username=forum
spring.datasource.password=Bk55yc1u0eiqga6e
Depois de garantir que as configurações estão todas iguais as que estão nos pacotes fornecidos nas aulas, rode o comando "docker-compose up -d" para realizar a subida, conforme o output abaixo:
Tendo executado estes passos, valide a rota para tópicos via browser ou terminal
Jorge, caso tenha ainda algum problema, me de um retorno, por favor.
Bons estudos!