Как запустить команду в контейнере, используя kubectl exe c, который использует переменные окружения из контейнера? - PullRequest
1 голос
/ 05 марта 2020

Я пытаюсь написать скрипт, который запускает некоторые команды внутри контейнера, используя kubectl exe c. Я хотел бы использовать переменные окружения, которые существуют внутри контейнера, но изо всех сил пытался выяснить, как помешать моей локальной оболочке оценивать переменную var и по-прежнему оценивать ее в контейнере.

Это была моя первая попытка , но $ MONGODB_ROOT_PASSWORD оценивается моей локальной оболочкой, а не внутри контейнера:

kubectl -n enterprise exec mycontainer -- mongodump --username root --password $MONGODB_ROOT_PASSWORD --out /dump

Я пробовал это, но у меня была та же проблема с конвейером, это оценивалось в моем локальном, а не в контейнере:

kubectl -n enterprise exec mycontainer -- echo 'mongodump --username root --password $MONGODB_ROOT_PASSWORD --out /dump' | sh

Есть ли способ сделать это с помощью kubectl exe c?

1 Ответ

3 голосов
/ 05 марта 2020

Вам нужно sh -c там, как exec -- sh -c 'whatever $PASSWORD'.

...