Jakub Królikowski
Jakub Królikowski

Reputation: 571

Postgres in docker returns 'password authentication failed (..) roles "username" does not exist'

What I'm trying to do: connect to postgres db with a FastAPI app via common docker-compose file. It used to work until I changed postgres configuration from default.

I'm aware this is a common problem and I tried following every tip I found so far. I did double check spelling of evn variables. I did remove volumes, images, networks and rebuild it from scratch multiple times by now.

Here are relevant parts of docker-compose

version: "3.4"

networks:
  internal:
    external: false

services:

  db:
    image: postgres:11
    ports:
      - "5432:5432"
    environment:
      - POSTGRES_USER=test_user
      - POSTGRES_PASSWORD=test_pass
      - POSTGRES_DB=test_db
    networks:
      - internal

  my_app:
    depends_on:
      - db
    networks:
      - internal

Here's how I present db to app in code.

DATABASE_URL = "postgres://test_user:test_pass@db:5432/test_db"

I continue to get 'password authentication failed for user "test_user" / Role "test_user" does not exist. / Connection matched pg_hba.conf line 95: "host all all all md5"

What did I manage to miss?

Upvotes: 1

Views: 814

Answers (1)

Jakub Królikowski
Jakub Królikowski

Reputation: 571

For those who find it, the problem was actually in how I tried to provide env variables.

    environment:
      - POSTGRES_USER: test_user
      - POSTGRES_PASSWORD: test_pass
      - POSTGRES_DB: test_db

works

Upvotes: 2

Related Questions