DEV Community

Alexandre Fernandes dos Santos
Alexandre Fernandes dos Santos

Posted on

2 2

Docker Compose - PostgreSQL

Bom dia meus sqlizers👋(significa amantes de SQL para os desavisados, o mundo às vezes parece grande demais não é mesmo?), gostaria de compartilhar um script para rodar o postgreSQL usando docker-compose e acho que pode ajudar quem quer algo bem simples só botar para rodar e uma dashboard bonitinha para olhar os dados e fazer algumas queries também; Sem muita enrolação bora pro código:

version: '3'

services:
  database_postgres:    
    image: postgres:latest
    ports:
      - 5432:5432
    environment:
      POSTGRES_PASSWORD: password
      POSTGRES_USER: username
      POSTGRES_DB: database_name 
    volumes:
      - ${HOME}/postgres-data/:/var/lib/postgresql/data    

  pgweb:
    container_name: pgweb
    restart: always
    image: sosedoff/pgweb
    ports:
      - 8081:8081
    links:
      - database_postgres:database_postgres
    environment:
      - DATABASE_URL=postgres://username:password@database_postgres:5432/database_name?sslmode=disable
    depends_on:
      - database_postgres
Enter fullscreen mode Exit fullscreen mode

Explicando um pouco mais

Sobre o serviço database_postgres nada muito novo sobre o sol, só algumas variáveis para inicializar o banco com o usuário de forma correta, mas o pulo do gato está em volumes ali eu garanto que uma pasta vai ser criada na pasta home no caso a inicial do usuário e nela que vão ficar os dados do banco então se por acaso você der um docker-compose down seus dados não são perdidos, não é o suficiente para colocar seus sistemas em produção mas é uma mão na roda algumas horas 😂.

Na parte da dash que é o serviço pgweb tem duas partes legais além da url de conexão que é colocada como variável de ambiente, que é o link que é criado entre os serviços basicamente estou colocando um alias para que o container da dash pgweb possa acessar o serviço database_postgres pelo nome database_postgres que é o mesmo inclusive, deixando tudo em casa. O depends_on é somente para ele não subir antes do banco dados para evitar que ele dê crash já que se ele subir antes ele não vai achar o banco de dados.

Então depois de dar um belo docker-compose up já é possível acessar sua bela dashboard pela url http://localhost:8081/ e fazer suas queries ou só visualizar seus dados pelo navegador sem instalar mais nada.

Bem por isso é só, espero que sirva de ajuda para alguém e qualquer dúvida os comentários estão aí pra isso 🤙

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