Роль Docker django postgres не существует
У меня возникла ошибка, когда docker постоянно говорит мне, что нет пользователя postgres. После долгих поисков я понял, что добавление
environment:
- POSTGRES_DB=iku
- POSTGRES_USER=admin
- POSTGRES_PASSWORD=password
Это создает пользователя admin, а не postgres по умолчанию. Вот ошибка, которую я получаю
src-postgres-1 | 2022-08-26 18:03:00.136 UTC [207] DETAIL: Role "postgres" does not exist.
src-postgres-1 | Connection matched pg_hba.conf line 100: "host all all all scram-sha-256"
Я не сталкиваюсь с этой ошибкой, когда пересылаю порт на свою машину. То есть после добавления этого
ports:
- "5432:5432"
Если я удаляю вышеприведенный код, все работает нормально. Но я не могу подключить PGAdmin к Postgres, запущенному на docker, так как порт не открыт для внешнего доступа. Этот порт говорит мне, что роль postgres не существует. Любая помощь будет принята с благодарностью! Вот мой файл docker-compose
version: "3.9"
services:
postgres:
image: postgres:14.5
volumes:
- ./data/db:/var/lib/postgresql/data
environment:
- POSTGRES_DB=custom
- POSTGRES_USER=admin
- POSTGRES_PASSWORD=password
ports:
- "5432:5432"
redis:
restart: always
image: redis:latest
ports:
- "6379:6379"
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- postgres
- redis
Я подумал, что у меня может быть запущена локальная служба postgres, я проверил ее. На моей машине Ubuntu не запущен локальный postgres. Я даже удалил postgres, чтобы быть уверенным.