1
resposta

Context load error

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?

1 resposta

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!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software