Problema:
Quando eu tentava rodar o docker-compose com o PostgreSQL e minha aplicação, o banco de dados não conseguia se conectar corretamente, e aparecia o erro:
failed to connect to host=postgres user=root database=root: hostname resolving error (lookup postgres on 127.0.0.11:53: no such host)
Causa:
O erro estava relacionado ao volume mapeado para o PostgreSQL no docker-compose.yml. Estava mapeando apenas o diretório /var/lib/postgresql/data dentro do container:
volumes:
- ./postgres-data:/var/lib/postgresql/data

Mas, nas versões mais recentes do PostgreSQL, é necessário mapear o diretório completo /var/lib/postgresql/ (e não apenas o subdiretório data), pois o PostgreSQL usa subdiretórios para gerenciar seus dados. Esse mapeamento errado causava conflitos e o PostgreSQL não conseguia inicializar corretamente.
Solução:
Eu removi o container com docker compose down e alterei o mapeamento do volume para o diretório completo /var/lib/postgresql/, assim:
volumes:
- ./postgres-data:/var/lib/postgresql/
Com isso voces podem subir novamente o container com docker compose up -d , e assim o PostgreSQL conseguirá criar a estrutura de diretórios necessária para armazenar seus dados corretamente e a aplicação passou a se conectar ao banco de dados sem problemas.
Resultado:
Ao corrigir o mapeamento do volume, o banco de dados foi inicializado corretamente, e foi possível se conectar aos endereços da API, como http://localhost:8080/aluno e o erro foi resolvido.
Espero que isso ajude a resolver o problema de quem encontrar essa situação!