2
respostas

Erro ao gerar imagem

Boa tarde
Fiz o passo a passo das aulas anteriores, e estava recebendo um erro ao tentar conectar com o banco de dados.
Mesmo assim continuei assistindo as aulas, cheguei aqui no capítulo 2, e resolvi baixar a pasta do projeto para tentar novamente, achando que poderia ser algum erro de digitação, porém obtive o mesmo erro.
Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Poderiam me ajudar na resolução?

2 respostas

**Causa mais comum: hostname errado no código da aplicação

No Docker Compose, o serviço do banco está assim:
services:
postgres:

Isso significa que dentro da rede do Docker, o hostname do PostgreSQL NÃO é “localhost”, nem “127.0.0.1”.

**O hostname correto é: postgres
(exatamente o nome do serviço no docker-compose.yml)

Se no seu código Go você está usando algo como:

host=localhost

Ou: dsn := "host=127.0.0.1 user=... password=... dbname=..."

A aplicação nunca vai conectar quando rodar dentro do contêiner, porque dentro dele, o PostgreSQL não está rodando na máquina local, mas sim em outro container.

Como corrigir

No seu código Go (provavelmente em database.go ou config.go), troque o host para: host=postgres

Exemplo:

dsn := "host=postgres user=postgres password=root dbname=postgres port=5432 sslmode=disable"

ou

connStr := fmt.Sprintf(
"host=%s port=%s user=%s password=%s dbname=%s sslmode=disable",
"postgres", "5432", "postgres", "root", "postgres",
)

**Possível erro visto na imagem

A imagem mostra algo como:

panic: erro ao conectar com banco de dados
dial tcp 127.0.0.1:5432: connect: connection refused

Isso confirma que a sua aplicação está tentando conectar no 127.0.0.1
Mas deveria tentar conectar em postgres

Por isso o erro permanece mesmo baixando a pasta original do curso:
O erro não está no Docker, está no código, que você ainda não alterou.

Tenta isso, ainda não estou fazendo isso, mas vai ser a próxima coisa que farei.
Já tive um problema desse.
Qualquer coisa é só falar.

Entendi o que quis explicar, porém durante a aula não somos instruídos a fazer essa alteração, e o projeto disponibilizado já na segunda parte do curso também está com o mesmo erro. Pelo menos o projeto disponibilizado na segunda aula já poderia estar com a correção citada. De qualquer forma, obrigado pelo retorno.