У меня установлен контейнер PostgreSQL, к которому я могу успешно подключиться с помощью Adminer, но я получаю ошибку аутентификации при попытке подключиться через что-то вроде DBeaver с использованием тех же учетных данных.
Я пытался предоставив порт 5432 в Dockerfile и увидев на Windows для docker, что порт правильно связан. Я предполагаю, что из-за ошибки аутентификации проблема не в том, что сервер не виден, а с именем пользователя или паролем?
Docker Составьте файл и Dockerfile выглядят следующим образом.
version: "3.7"
services:
db:
build: ./postgresql
image: postgresql
container_name: postgresql
restart: always
environment:
- POSTGRES_DB=trac
- POSTGRES_USER=user
- POSTGRES_PASSWORD=1234
ports:
- 5432:5432
adminer:
image: adminer
restart: always
ports:
- 8080:8080
nginx:
build: ./nginx
image: nginx_db
container_name: nginx_db
restart: always
ports:
- "8004:8004"
- "8005:8005"
Dockerfile: (Dockerfile позже будет использоваться для копирования сертификатов и ключей ssl)
FROM postgres:9.6
EXPOSE 5432
Хотите знать, есть ли что-то еще, что я должен сделать, чтобы это работало с помощью какой-то другой утилиты?
Любая помощь будет отличной.
Заранее спасибо.
Обновление:
Попытка доступа к базе данных через IP-адрес контейнера postgresql 172.28.0.3, но время соединения истекло, что говорит о том, что PostgreSQL правильно прослушивает 0.0.0.0:5432 и для по какой-то причине пользователь и пароль не могут использоваться вне Docker даже с хост-компьютера с использованием localhost.