Skip to content

pauloricardoferreira/docker_postgres

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 

Repository files navigation

Bem-vindo

Este repositório contem docker-compose com o Postgres Padrão.

Então você pode realizar uma cópia do docker-compose.yml para cada projeto, ou se preferiri, iniciar um container com o postgres padrão e gerência você mesmo a criação dos usuários e bases de dados.

Um detalhe para a porta do container, caso opte por criar um docker-compose para cada projeto, você pode omitir a opção ports, agora caso deseje acessar externamente os dados desse banc o é necessário uma porta diferente para cada container

Um detalhe importante é criar um volume e uma rede para cada postgres de cada aplicação caso deseje.


Abaixo alguns exemplos de configurações

Volumes

Voê pode criar seus volumes com o comando do docker ou informar o nome do volume no docker-compose para que o docker crie um volume anônimo conforme abaixo.

#Volumes anônimos criados pelo Docker no momento em que os serviõs são iniciados
version: '3.5'
#nas versões mais novas do Docker, a tag: version: está deorecuada e pode ser removida

service:
  .
  .
  .
  .
  .
  
volumes:
  postgres-superset:
#Volumes criados Externamnte com o comando "docker volume create nome_do_volume"
version: '3.5'
#nas versões mais novas do Docker, a tag: version: está deorecuada e pode ser removida

service:
  .
  .
  .
  .
  .
  
volumes:
  postgres-superset:
    external: true

Redes DEPRECIADO

Não é mais necessário criar redes para comunicação entre containers.

Basta inserir no docker-compose a linha abaixo em seus docker-compose e ao usar como configuração de host nas aplicações host.docker.internal que o docker chega até o container de destino.

extra_hosts:
      - "host.docker.internal:host-gateway"

A parte de redes está DEPRECIADO

Algo importante são as redes do Docker.

Cada container sobe em uma rede privada, então se você deseja ter comunicação entre diversos containers é necessário criar redes externas e adiciona-las no docker-compose de cada serviço.

O Exemplo abaixo mostra uma configuração de redes entre um postgres separado para Apache Superset e o Apache Superset.

#Serviço de um postgres separado para o Apache Superset
version: '3.5'

services:
  postgres-superset:
    .
    .
    .
    .
  networks: 
   - postgres-superset
  
  
networks:
  postgres-superset:
    external: true
    name: postgres-superset
#Serviço do Apache Superset
version: '3.5'

services:
  superset:
    .
    .
    .
    .
  networks: 
   - postgres-superset
  
  
networks:
  postgres-superset:
    external: true
    name: postgres-superset

É importanta adicionar a rede postgres-superset no docker-compose do Apache Superset para que tenha comunicação entre os containers.

As redes são criadas externamento com o comando docker network create nome_da_rede.

Com esta configuração o Docker é capaz de resolver nomes, transformando o nome do serviço postgres-superset em um endereço válido dentro do Docker

Exemploso de docker-compose para postgres

Postgres para Apache Superset

version: '3.5'

services:
  postgres-superset:
    image: postgres:14
    container_name: postgres-superset
    environment:
      POSTGRES_USER: superset
      POSTGRES_PASSWORD: superset
      POSTGRES_DB: superset
    volumes:
      - postgres-superset:/var/lib/postgresql/data
    restart: always
    networks:
      - postgres-superset
    ports:
      - 5444:5432

volumes:
  postgres-superset:

networks:
  postgres-superset:
    external: true
    name: postgres-superset

Postgres para Apache Airflow

version: '3.5'

services:
  postgres-airflow:
    image: postgres:14
    container_name: postgres-airflow
    environment:
      POSTGRES_USER: airflow
      POSTGRES_PASSWORD: airflow
      POSTGRES_DB: airflow
    volumes:
      - postgres-airflow:/var/lib/postgresql/data
    restart: always
    networks:
      - postgres
    ports:
      - 5444:5432

volumes:
  postgres-airflow:

networks:
  postgres-airflow:
    external: true
    name: postgres-airflow

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors