Eu tenho microservices de base de dados dockerized. Eu posso executar consultas manuais usando o seguinte:
$ ssh user@foo.domain.com
$ docker exec -it postgres bash
docker$ psql -U postgres -h 127.0.0.1 -d postgres
Todos os serviços da web conversam entre si usando uma rede virtual interligada do Docker batman
.
networks:
batman:
driver: bridge
Em alinhamento com as práticas recomendadas de segurança do PostgreSQL - eu não exponha a porta 5432 do PostgreSQL à máquina host em foo.domain.com. Somente os contêineres irmãos que também estão na rede "batman" Docker podem se conectar ao banco de dados.
Em uma configuração tradicional do DataGrip / PostgreSQL, eu faria ssh na caixa hospedada onde o PostgreSQL é servido, e usaria um cliente PostgreSQL local (regras de: pg_hba.conf).
Um sistema Dockerized requer uma etapa adicional (exec).
Como o DataGrip não parece permitir comandos de conexão prefixados, como eu uso o DataGrip para acessar uma instância do PostgreSQL por trás de uma rede virtual do Docker?
Respostas:
-2 para resposta № 1Eu acho que isso deveria ser possível:
- Adicione um container simples com um servidor SSH no mesmo (
batman
) rede - Configure sua conexão via túnel SSH:
- Configure sua conexão como se estivesse na rede (para que o host seja
postgres
AFAIR)