2017-01-30 2 views
0

контейнерирование приложения django, построенного с помощью pydanny cookiecutter для развертывания в экземпляре EC2. docker_compose.yml довольно straigtforward:не может аутентифицировать пользователя в postgres docker container

version: '2' 

volumes: 
    postgres_data: {} 
    postgres_backup: {} 

services: 
    postgres: 
    build: ./compose/postgres 
    volumes: 
     - postgres_data:/var/lib/postgresql/data 
     - postgres_backup:/backups 
    env_file: .env 

    .... 

ничего экзотического в dockefile; просто указатели для резервного копирования и восстановления сценарии и команды, чтобы сделать их исполняемым:

FROM postgres:9.4 

# add backup scripts 
ADD backup.sh /usr/local/bin/backup 
ADD restore.sh /usr/local/bin/restore 
ADD list-backups.sh /usr/local/bin/list-backups 

# make them executable 
RUN chmod +x /usr/local/bin/restore 
RUN chmod +x /usr/local/bin/list-backups 
RUN chmod +x /usr/local/bin/backup 

Я попытался несколько вариаций на моих дб ENV переменных, последняя из которых выглядит как:

# PostgreSQL 
POSTGRES_PASSWORD='postgrespass' 
POSTGRES_USER='postgres' 

контейнер строит и инициализирует без проблем на:

docker-compose build postgres 
docker-compose up -d 

, но когда я пытаюсь сделать и перенести исходные данные в БД с:

docker-compose run django /usr/local/bin/python manage.py makemigrations 

БД не отвечает - «Postgres недоступна - спит» и Докер журналы DB возвращается:

DETAIL: Connection matched pg_hba.conf line 95: "host all all all md5" 
FATAL: password authentication failed for user "'postgres'" 

, очевидно, у меня есть некоторые проблемы разрешения, но я не совсем уверен, как обратиться к ним. Мои контейнеры работают на Ubuntu 16.04 AMI.

ответ

0

Вы можете перейти на Psql консоль и изменить пароль для пользователя Postgres, введя следующие команды в терминале

sudo -u postgres psql 
postgres=# \password 
Enter new password: 
Enter it again: 
postgres=# 

или восстановить пароль, если вы забыли:

ALTER USER "user_name" WITH PASSWORD 'new_password'; 
+0

Вы хотите должны получить удаленный экземпляр с чем-то вроде «psql -h 68.152.13.25 -p 5432 -U postgres --password», проблема в том, что вы просто генерируете ту же ошибку аутентификации. – kjarsenal

+0

Для пароля меньше логин: sudo -u имя_пользователя psql имя_базы @kjarsenal – amrit

Смежные вопросы