@lsnginterests

Как правильно написать docker-compose для postgresql?

Доброго дня.

Пытаюсь развернуть локальную БД с помощью docker. Мой compose:
version: '3.5'

services:
  db:
    container_name: "db"
    image: postgres
    ports:
      - "5432:5432"
    environment:
      POSTGRES_DB: db
      POSTGRES_PASSWORD: root
      POSTGRES_USER: admin


Результат билда:
LOG: database system is ready to accept connections


Но при попытке подключении в терминал возвращается следующее:
db | 2023-09-26 19:15:09.868 UTC [40] FATAL: password authentication failed for user "admin"
db | 2023-09-26 19:15:09.868 UTC [40] DETAIL: Role "admin" does not exist.
db | Connection matched file "/var/lib/postgresql/data/pg_hba.conf" line 128: "host all all all scram-sha-256"
  • Вопрос задан
  • 1301 просмотр
Пригласить эксперта
Ответы на вопрос 2
fzfx
@fzfx
18,5 дм
нет по тому IP и порту, к которым подключаетесь, пользователя admin (или не подошёл пароль), что тут ещё скащать. убедитесь, что подключаетесь к верным IP и порту. с портом вроде всё ясно, 5432. насчёт IP - зависит, откуда вы подключаетесь. если с хостовой ОС (в которой стоит докер, в котором поднят контейнер с БД) - по идее коннектиться надо на 127.0.0.1. если же подключаетесь из контейнера в той же сети докера, что и БД - тогда это будет хост db.
Ответ написан
Вам либо нужно указывать и БД, к которой подключаетесь, либо пересоздать кластер с БД и юзернеймом, которые будут совпадать.

По умолчанию postgresql при подключении ищет базу с таким же названием, как имя пользователя, о чём сообщает в ошибке.

В вашем случае нужно подключаться так: psql -U admin -W db. Пароль спросит само.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы