Ao rodar os testes no container, todos passam. mas o context load não passa, pois não consegue se comunicar com o banco de dados. mas como sinalizar que o banco de dados está no container nesse caso?
Ao rodar os testes no container, todos passam. mas o context load não passa, pois não consegue se comunicar com o banco de dados. mas como sinalizar que o banco de dados está no container nesse caso?
Olá, Leonardo! Tudo ok contigo?
Pelo que entendi, você está tendo problemas para conectar seu aplicativo Spring ao banco de dados que está em um container. Uma maneira comum de resolver isso é configurando as propriedades do Spring para apontar para o banco de dados no container.
No arquivo application.properties
do seu projeto Spring, você pode configurar a URL do banco de dados, o nome de usuário e a senha. A URL do banco de dados geralmente tem o formato jdbc:postgresql://localhost:5432/nomedobanco
, onde localhost
é o endereço do servidor onde o banco de dados está hospedado, 5432
é a porta e nomedobanco
é o nome do seu banco de dados.
No entanto, quando você está usando containers, localhost
não apontará para o container do banco de dados. Em vez disso, você deve usar o nome do serviço do banco de dados como definido em seu arquivo Docker Compose. Por exemplo, se você definiu seu serviço de banco de dados como db
em seu arquivo Docker Compose, a URL do banco de dados seria jdbc:postgresql://db:5432/nomedobanco
.
Aqui está um exemplo de como seu arquivo application.properties
pode parecer:
spring.datasource.url=jdbc:postgresql://db:5432/nomedobanco
spring.datasource.username=usuario
spring.datasource.password=senha
Lembre-se de substituir db
, nomedobanco
, usuario
e senha
pelos valores corretos para o seu ambiente.
Era isso.
Espero ter ajudado, abraços e bons estudos!