Cada contenedor tiene su propia interfaz de red con su propio localhost. Así que cambie la forma en que Java apunta a Postgres:
spring.datasource.url=jdbc:postgresql://localhost:5432/sample
Para:
spring.datasource.url=jdbc:postgresql://db:5432/sample
db
se resolverá con la IP de Postgres adecuada.
Prima. Con docker-compose no necesita construir su imagen a mano. Así que cambia:
web:
image: myuser/manager:latest
Para:
web:
build: .