DEV Community

Jardel
Jardel

Posted on

Configurando TypeORM com PostgreSQL usando Docker.

Recentemente, perdi algumas horas tentando resolver um erro durante a configuração inicial de um side project que estava desenvolvendo.

Estou utilizando o Docker para rodar minha aplicação em Node.js e o banco de dados PostgreSQL, e estou utilizando o TypeORM para fazer operações no banco de dados. No entanto, o banco de dados não estava se conectando de nenhuma forma à minha aplicação, apesar de já ter testado várias soluções.

Na minha primeira tentativa de conexão com o banco de dados, meu código estava assim:

ormconfig.json

Código

DataSource

Código

Com essas configurações, todas as minhas tentativas de conexão falharam. Fiz o debug de todas as formas possíveis, mas não conseguia entender o que estava errado. Foi então que pesquisei e encontrei uma solução no repositório do TypeORM que resolveu meu problema.

Comentário no github do TypeORM

O problema estava no meu código, mais especificamente no host, que estava configurado como "localhost". Nesse caso, o Docker trata "localhost" como o IP da minha máquina local, e não como o IP do container. Por isso, a conexão não estava sendo estabelecida corretamente.

A solução foi obter o IP do container do Docker com o seguinte comando:
sudo docker inspect nome_do_seu_container | grep "IPAddress"

Esse comando irá retornar o IP correto que você deve usar na configuração do seu banco de dados.

Por exemplo:

ormconfig.json

192.168.0.1 é um IP ficticio, você troca pelo IP do seu container

Código

DataSource

192.168.0.1 é um IP ficticio, você troca pelo IP do seu container

Código

Agora, com essa correção, sua aplicação conseguirá se conectar ao banco de dados e você poderá realizar as operações desejadas.

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay