Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Erro ao executar o Postgres no software Docker

Bom dia.

Na atividade no video "Docker e Postgres", estou tendo dificuldade na conexao do banco de dados. Quando executo o comando "docker-compose up" pelo terminal, ele faz a execução normalmente, porém pelo Docker apenas a porta 54321:80 do PgAdmin está rodando, já a porta 5432:5432 do Postgres não roda, tentando executar ela manualmente torna o erro abaixo:

Error: in 18+, these Docker images are configured to store database data in a

   format which is compatible with "pg_ctlcluster" (specifically, using

   major-version-specific directory names).  This better reflects how

   PostgreSQL itself works, and how upgrades are to be performed.


   See also https://github.com/docker-library/postgres/pull/1259


   Counter to that, there appears to be PostgreSQL data in:

     /var/lib/postgresql/data (unused mount/volume)


   This is usually the result of upgrading the Docker image without

   upgrading the underlying database using "pg_upgrade" (which requires both

   versions).


   The suggested container configuration for 18+ is to place a single mount

   at /var/lib/postgresql which will then place PostgreSQL data in a

   subdirectory, allowing usage of "pg_upgrade --link" without mount point

   boundary issues.


   See https://github.com/docker-library/postgres/issues/37 for a (long)

   discussion around this process, and suggest
2 respostas

Oii, Gabriel! Tudo bem?

Vi que você finalizou o curso. Ainda precisa de ajuda? Se sim, preciso que você me envie seu projeto completo no github, assim posso baixar e fazer testes na minha máquina.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!
solução!

Bom dia.

Ontem continuei o curso mesmo não conseguindo testar, hoje pela manhã com a ajuda de um colega de trabalho consegui resolver o problema. Segue abaixo o que foi identificado de problema e como foi resolvido:

Resumindo o erro principal estava na pasta "data" e que a versão do docker não conseguia resolver este problema.

A primeira alteração foi apagar todos os dados do Docker de antigos projetos. Mesmo assim o erro persistia.

Com a dica de outro forum em trocar a porta que o portgres estava usando então fiz a alteração da porta para 5433:5432.

Após isso tentei executar uma versão inferior do portgres, segue script alterado do "docker-compose.yml" abaixo:

//
postgres:
image: "postgres:16-alpine"
//

E o erro ainda persistia, por ultimo fiz mais uma alteração no script, acrescentando o script abaixo no final:

//
volumes:
postgres_data:

Desta forma consegui finalmente fazer com que o portgres executasse, não sei identificar se todas as alterações em que fiz era necessário, porém funcionou. Espero que este forum possa ajudar outros com o mesmo problema.

Obrigado pela atenção.