docker-compose PostgreSQL
Gere um docker-compose pronto para PostgreSQL, com usuário, senha, banco e volume persistente configurados. Suba seu banco local com um docker compose up.
YAML
—
Postgres local em um docker compose up
Você precisa de um banco para desenvolver e não quer instalar o Postgres na máquina, com serviço rodando no boot e cluster para limpar depois. Escolha a tag da imagem (16-alpine, 17, o que o projeto usar) e a senha, e o YAML sai pronto: um serviço, a porta 5432 publicada e um volume nomeado pgdata montado em /var/lib/postgresql/data, que é onde o Postgres guarda os dados.
O arquivo gerado define só POSTGRES_PASSWORD, e não é descuido: na imagem oficial, POSTGRES_USER assume postgres quando você não informa, e POSTGRES_DB assume o nome do usuário. Ou seja, você termina com usuário postgres e banco postgres, o que basta para desenvolver. Se quiser outros nomes, acrescente as duas variáveis. Também não há a chave version no topo, obsoleta na especificação atual do Compose.
A pegadinha: essas variáveis só valem na primeira subida, quando o diretório de dados está vazio e o initdb roda. Trocar a senha depois no YAML não muda nada; para valer, é docker compose down -v, que apaga o volume junto com os dados. E o mapeamento 5432:5432 publica em todas as interfaces. Em servidor exposto, use 127.0.0.1:5432:5432, porque a regra que o Docker cria passa por cima do ufw.
Perguntas frequentes
Já tenho Postgres instalado, vai dar conflito de porta?
Como outro container acessa esse banco?
Perco os dados quando derrubo os containers?
Ferramentas Relacionadas
docker-compose MySQL
Gera um docker-compose pronto para MySQL, com a senha de root, a porta 3306 publicada e volume persistente. Escolha a tag da imagem e suba o banco local.
docker-compose Redis
Gera um docker-compose pronto para Redis, com a porta 6379 publicada e volume persistente. Escolha a tag da imagem e suba seu cache ou broker local com um docker compose up.
Docker Run → Compose
Converta um comando docker run para o equivalente docker-compose.yml automaticamente. Mapeia portas, volumes, variáveis de ambiente, redes e restart policies.