Docker-compose postgresql пароль аутентификации не удалось - PullRequest
0 голосов
/ 11 апреля 2019

Я пытаюсь запустить установку с веб-сервисом, который использует базу данных postgres.Должен быть прост в настройке, но я получаю ошибки.Итак, первое, что я хочу убедиться, это то, что база данных, которую я настроил, действительно существует и работает.

Чтобы проверить это, я заменяю «потребителя» или «клиента» альпийской интерактивной оболочкой, например, так:

version: '3'
services:

  db:
    image: postgres:10.1-alpine
    container_name: db
    expose:
      - 5432
    volumes:
      - "dbdata:/var/lib/postgresql/data"
    environment:
      - POSTGES_USER=user
      - POSTGRES_PASSWORD=pass
      - POSTGRES_DB=db

  web:
    image: alpine:latest
    stdin_open: true
    tty: true
    entrypoint: /bin/sh
    depends_on:
      - db

volumes:
  dbdata:

Затем я запускаю следующую команду, чтобы войти в интерактивную оболочку:

docker-compose run web

и следующая команда для получения в базе данных:

apk --update add postgresql-client && rm -rf /var/cache/apk/*

psql -h db -U user db

Я получаю простое отрицание от postgresql:

psql: FATAL:  password authentication failed for user "user"

То же сообщение об ошибке для каждой комбинацииимени пользователя / пароля / имени базы данных я пытаюсь.Не очень полезно.

Что я здесь не так делаю?

1 Ответ

2 голосов
/ 11 апреля 2019

В вашем файле docker-compose есть опечатка. Вы ошиблись POSTGRES здесь:

POSTGES_USER=user

Это означает, что user пользователь не создается. Если я исправлю эту опечатку, то получу:

version: '3'
services:

  db:
    image: postgres:10.1-alpine
    expose:
      - 5432
    volumes:
      - "dbdata:/var/lib/postgresql/data"
    environment:
      - POSTGRES_USER=user
      - POSTGRES_PASSWORD=pass
      - POSTGRES_DB=db

  web:
    image: alpine:latest
    stdin_open: true
    tty: true
    entrypoint: /bin/sh
    depends_on:
      - db

volumes:
  dbdata:

Запустить среду:

docker-compose up -d

Присоедините к web и установите клиент postgresql:

$ docker attach project_web_1
/ # apk add --update postgresql-client

Тогда я могу подключиться без проблем:

/ # psql -h db -U user db
Password for user user:
psql (11.2, server 10.1)
Type "help" for help.

db=#
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...