Итак, у вас есть кластер OpenShift и запущенный модуль в пространстве имен mongodb-test
. Модуль работает нормально
$ kubectl get pods -n mongodb-test
NAME READY STATUS RESTARTS AGE
mongodb-1-7ww9k 1/1 Running 0 14m
Когда я запускаю c в модуль и запускаю команду mongo
, у меня не возникает никаких проблем, и команда работает как положено.
$ kubectl exec -it -n mongodb-test mongodb-1-7ww9k -c mongodb sh
sh-4.2$ mongo
MongoDB shell version v3.6.3
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.3
>
Теперь проблема в том, что когда я пытаюсь запустить ту же команду, используя приведенный ниже синтаксис, я получаю mongo
not found
$ kubectl exec -it -n mongodb-test mongodb-1-7ww9k -c mongodb -- sh -c mongo
sh: mongo: command not found
E0227 13:02:01.728579 24237 v3.go:79] EOF
command terminated with exit code 127
Ниже приведены выходные данные echo $PATH
и which mongo
изнутри модуля.
$ kubectl exec -ti -n mongodb-test mongodb-1-7ww9k -c mongodb -- sh
sh-4.2$ echo $PATH
/opt/rh/rh-mongodb36/root/usr/bin:/opt/rh/rh-mongodb36/root/usr/sbin:/opt/app-root/src/bin:/opt/app-root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
sh-4.2$ which mongo
/opt/rh/rh-mongodb36/root/usr/bin/mongo
sh-4.2$