Can't connect using Prisma to Postgresql container running in Docker

Viewed 13

I'm trying to run Postgresql inside Docker, and connect to it via Prisma. I've looked at multiple issues and I can't see anything wrong with what I'm trying to do.

I can't seem to ping my postgresql instance either, or connect to adminer.

Most common issue people had was with using localhost instead of the docker image name.

I've also tried disabling firewalld, but that made no difference so I do not think it's my firewall blocking the port either.

Thanks!

.env

DB_NAME=spot
DB_HOST=postgres
DB_USERNAME=spotuser
DB_PASSWORD=spotpass
DB_PORT=5432

DATABASE_URL=`postgresql://${DB_USERNAME}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT}/${DB_NAME}?schema=public`

docker-compose.yml

version: '3.1'

services:

  postgres:
    image: postgres
    restart: always
    volumes:
      - ./db-data:/var/lib/postgresql/data
    environment:
      - POSTGRES_USER=${DB_USERNAME}
      - POSTGRES_PASSWORD=${DB_PASSWORD}
      - POSTGRES_DB=${DB_NAME}
    ports:
      - 5432:5432

  adminer:
    image: adminer
    restart: always
    ports:
      - 8080:8080
❯ docker ps
CONTAINER ID   IMAGE      COMMAND                  CREATED         STATUS         PORTS                                       NAMES
e66b70a9ac69   adminer    "entrypoint.sh docke…"   6 minutes ago   Up 2 seconds   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp   spot-spot-adminer-1
dd629496a246   postgres   "docker-entrypoint.s…"   6 minutes ago   Up 2 seconds   0.0.0.0:5432->5432/tcp, :::5432->5432/tcp   spot-spot-postgres-1
1 Answers

https://docs.docker.com/compose/compose-file/#expose

Try adding expose to your docker-compose.yml

version: '3.1'

services:

  postgres:
    image: postgres
    restart: always
    volumes:
      - ./db-data:/var/lib/postgresql/data
    environment:
      - POSTGRES_USER=${DB_USERNAME}
      - POSTGRES_PASSWORD=${DB_PASSWORD}
      - POSTGRES_DB=${DB_NAME}
    ports:
      - 5432:5432
    expose:
      - 5432
Related