em Geral

Postgres no Docker como fazer…

Fala galera tudo bem ? neste exemplo eu vou exemplificar como eu consigo rodar o Postgres no Docker de forma simples e gerenciar pelo Docker Compose.

Este considerando que você tenha o Docker devidamente configurado em seu computador.

Entendendo o arquivo

Estamos utilizando a versão do Docker-Compose 2 para nossa aplicação

Mais abaixo estamos mapeando um volume chamado dados que será onde os dados do Postgres será persistido.

Mais abaixo em image: estou considerando a versão 9.6 do Postgres para nossa aplicação. Veja que dentro da variavéis de ambiente estou setando o valor

POSTGRES_HOST_AUTH_METHOD: “trust” pois é necessário para que nosso container não apresente problemas na inicialização.

Em volumes temos

volumes:
  - dados:/var/lib/postgresql/data
  - ./scripts:/scripts
  - ./scripts/init.sql:/docker-entrypoint-initdb.d/init.sql

onde dados onde ficará os arquivos persistidos do banco de dados será mapeado para dentro da pasta padrão do Postgres dentro do container

Scripts onde ficará nossos scripts sql de inicialização ficará mapeado para dentro de /scripts no container

e o script ./scripts/init.sql é mapeado para dentro de /docker-entrypoint-initdb.d/init.sql. Isto significa que toda vez que nossa container inicializar ele tentará executar este script sql de inicialização.

Executando comandos do Postgres no container através da máquina host

docker-compose exec db psql -U postgres -c ‘\l’

se pegarmos o comando acima poderemos ver que o comando docker-compose irá executar o comando db psql com o usuário postgress em busca do comando \l que irá listar todas as tabelas criadas na inicialização