Может быть, некоторые из вас, профессионалы openshift / docker, могут помочь мне с этим. Заранее извиняюсь за мое форматирование, я на мобильном и не имею доступа к точным кодам ошибок прямо сейчас. Я могу предоставить более подробный ввод / stderr позже, если это необходимо.
Некоторые подробности об окружающей среде:
-функционирующий модуль OC, работающий с одним контейнером postgresql v9.6.
-CentOS7 host
-Centos7 локальная машина
-bash 4.2 shell (как в контейнере, так и на моей локальной коробке)
Моя цель - использовать однострочную команду bash для rsh в контейнер postgresql и выполнить следующую команду, чтобы напечатать указанные базы данных контейнеров на мой локальный терминал. как то так:
[root@mybox ~]$ oc rsh pod-name /path/to/command/executable/psql -l
Результат:
rsh не может найти нужную библиотеку, код ошибки 126
Проблема, с которой я сталкиваюсь, заключается в том, что при выполнении этого одного вкладыша rsh не видит переменные окружения целевого модуля. Это означает, что он не может найти вспомогательные библиотеки, которые нужны команде psql. Если я не предоставил полный путь, как показано в моем примере, он даже не может найти саму команду psql.
Досадно, что запуск следующей строки приводит к выводу всех переменных среды pods (включая те, которые мне нужны для psql) на мой локальный терминал, поэтому они должны быть как-то доступны.
[root@mybox ~]$ oc rsh pod-name env
Так как это должно быть выполнено как часть автоматизированной процедуры, простой интерактивный подход rsh (который работает, как описано ниже) не вариант.
[root@mybox ~]$ oc rsh pod-name
sh-4.2$ psql -l
(pod счастливо печатает информацию базы данных в удаленном терминале)
Я попытался выполнить сценарий, который определяет переменную среды psql, и затем связал цепочку желаемой команды, но я получаю отказ в разрешении при попытке выполнить сценарий env.
[root@mybox ~]$ oc rsh pod-name /path/to/env/define/script && psql -l
разрешение отклонено, код ошибки rsh 127