Как правильно подключиться к docker postgres серверу через psql с паролем и без интерактивного подключения? - PullRequest
0 голосов
/ 23 марта 2020

Я пытаюсь подключиться к postgres серверу, который я использую в docker контейнере с nu c. Как мне управлять этим неинтерактивно, чтобы я мог запускать команды через bash?

OS = 16.04 UBUNTU

Docker container = https://docs.docker.com/engine/examples/postgresql_service/

Команда, которую я использую для ввода docker имени пользователя и docker базы данных на моем postgres сервере:

psql -h localhost -p 5432 -d docker -U docker

Как и ожидалось, меня попросили ввести пароль, который я могу сделать в интерактивном режиме, но я бы хотел иметь возможность безопасно ссылаться на этот пароль откуда-то еще, чтобы я мог передавать команды на psql для запуска без необходимости ввода пароля. Как бы я go об этом?

В качестве примера я планирую проводить этот прогон каждую неделю для загрузки данных:

psql -h localhost -p 5432 -d docker -U docker --password --c "\COPY ems_stage FROM 'Desktop/ems/ems_raw.csv' WITH (format csv,header);"

В качестве небольшого обходного пути я пытался выполнить код без пароля, как в команде psql:

psql -h localhost -p 5432 -d docker -U docker -w

Но я получаю следующую ошибку: psql: fe_sendauth: no password supplied

1 Ответ

0 голосов
/ 23 марта 2020

Мне кажется, я понял, как это сделать:

Поскольку я выполняю команды psql, я поместил свой пароль в файл .pgpass, как указано в документации, а затем направил команду в файл. :

PGPASSFILE=.pgpass psql -h localhost -U docker -d docker -w --c "\COPY ems_stage FROM 'Desktop/ems/ems_raw.csv' WITH (format csv,header);"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...