如何使用kubectl exec在容器中运行命令,该命令使用容器中的环境变量



我正在尝试编写一个脚本,使用kubectl exec在容器内运行一些命令。我想使用容器中存在的环境变量,但很难弄清楚如何防止本地shell评估var,并在容器中对其进行评估。

这是我的第一次尝试,但$MONGODB_ROOT_PASSWORD是由我的本地shell评估的,而不是在容器中:

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执行官一起做到这一点?

您需要一个sh -c,就像exec -- sh -c 'whatever $PASSWORD'一样。

相关内容

  • 没有找到相关文章

最新更新