Как я могу установить pg96 в Docker, спрашивая пароль и выдавая ошибку?

Я следовал этому https://www.openscg.com/bigsql/package-manager/ но по последней команде, как дать пароль

Я хочу установить pg96 с помощью pgc.

Все работает нормально, pgc установлен в моем syatem, но когда я хочу установить pg96, он дает ошибку и подсказку.

Шаг 18/19: RUN ./pgc start pg96 ---> Запуск в 00938b13380c

Инициализация pg96

 Step 18/19 : RUN ./pgc start pg96
 ---> Running in 00938b13380c

## Initializing pg96 #######################

/usr/lib64/python2.7/getpass.py:83: GetPassWarning: Can not control echo on the terminal.
  passwd = fallback_getpass(prompt, stream)
Warning: Password input may be echoed.
Superuser Password [password]: Traceback (most recent call last):
  File "/bigsql/pg96/init-pg96.py", line 112, in <module>
    pg_password = util.get_superuser_passwd()
  File "/bigsql/hub/scripts/util.py", line 1344, in get_superuser_passwd
    pg_pass1 = getpass.getpass(str("Superuser Password [password]: "))
  File "/usr/lib64/python2.7/getpass.py", line 83, in unix_getpass
    passwd = fallback_getpass(prompt, stream)
  File "/usr/lib64/python2.7/getpass.py", line 118, in fallback_getpass
    return _raw_input(prompt, stream)
  File "/usr/lib64/python2.7/getpass.py", line 135, in _raw_input
    raise EOFError
EOFError

Когда я делаю./pgc начать pg96

Он спрашивает пароль, как я могу дать пароль, поскольку я использую файл Docker.

2 ответа

Решение

Ответ, который я нашел на этот вопрос, таков.

Pg96 использует скрипт Python, который проверяет любой файл.pgpass, поэтому после установки создайте файл.pgpass в каталоге pg96.

или если он не получает файл, то он запрашивает пароль в командной строке.

Мое предложение создать файл.pgpass внутри папки pg96.

а затем выполните команду

./pgc start pg96

Спасибо

У вас есть как минимум 2 способа

1) Вы можете попытаться передать "да" или "нет" вашему сценарию установки.

RUN sh -c '/bin/echo -e "yes\nyes\nyes\nno\nyes\nno" | your_script'

2) или вы можете попробовать тоже с ожидаемым

RUN apt-get install expect ADD install_script RUN install_script

где install_script находится

#!/usr/bin/expect set timeout 2 spawn "./your_script" expect "Question 1 :" { send "yes\n" } expect "Question 2 :" { send "no\n" } interact

Это исходит от

https://forums.docker.com/t/dockerfile-how-to-answer-install-question-from-application/5240/2

Другие вопросы по тегам