Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cannot connect to postgreSQL docker container via postico

I'm trying to use Postico to connect to a docker postgreSQL container on my local machine.

I've tried connecting to 0.0.0.0, localhost, and 127.0.0.1. Each give me the following error:

could not connect to server: Connection refused
    Is the server running on host "localhost" (::1) and accepting
    TCP/IP connections on port 5432?
could not connect to server: Connection refused
    Is the server running on host "localhost" (127.0.0.1) and accepting
    TCP/IP connections on port 5432?

0.0.0.0 gives me a similar, but smaller error:

could not connect to server: Connection refused
    Is the server running on host "0.0.0.0" and accepting
    TCP/IP connections on port 5432?

Here is my docker-compose file:

version: '3'
services:
  prisma:
    image: prismagraphql/prisma:1.23
    restart: always
    ports:
    - "4466:4466"
    environment:
      PRISMA_CONFIG: |
        port: 4466
        databases:
          default:
            connector: postgres
            host: postgres
            port: 5432
            user: prisma
            password: prisma
            migrations: true
  postgres:
    image: postgres:10.5
    restart: always
    environment:
      POSTGRES_USER: prisma
      POSTGRES_PASSWORD: prisma
    volumes:
      - postgres:/var/lib/postgresql/data
volumes:
  postgres:

Solution found thanks to Egor! I forgot to specify ports: - "5432:5432" inside my docker-compose file. Rookie mistake ;)

like image 757
Jon Leopard Avatar asked Jan 07 '19 21:01

Jon Leopard


2 Answers

I also had issues using Postico to connect to my Postgres DB in a docker container.

Ultimately, my issue was that I had a local Postgres DB running.

As soon as I disconnected my local Postgres DB, I was able to use Postico to connect to my docker DB. With the host set to localhost, I used the POSTGRES_USER, POSTGRES_PASSWORD, and host port as defined in my docker-compose.yml file.

Connection Detail for Postico

like image 91
Robert Shaw Avatar answered Sep 30 '22 04:09

Robert Shaw


If postgres version doesn't matter, try to change Postgres image to this one, it works for me

And also make sure that you add ports in docker-compose.yml

postgres:
    image: postgres
    restart: always
    environment:
      POSTGRES_USER: prisma
      POSTGRES_PASSWORD: prisma
    ports: 
     - "5432: 5432"
    volumes:
      - postgres:/var/lib/postgresql/data

P.s. just updated answer for readability

like image 24
Yegor Zaremba Avatar answered Sep 30 '22 05:09

Yegor Zaremba