You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何向kubectl exec调用的脚本传递环境变量?

解决kubectl exec传递环境变量到容器脚本的问题

你之前的命令报错,是因为--后面的内容会被容器直接当作可执行命令处理。你写的PASSWORD=pswd /mnt/script.sh会被解析为要执行PASSWORD=pswd这个"命令",但它并不是可执行文件,所以才会提示找不到。

有两种可行的解决方式:

方式一:通过shell命令包裹执行

借助容器内的shell(比如sh/bash)来执行带环境变量的命令,让shell帮你处理环境变量的设置:

kubectl exec client -n namespace -- sh -c 'PASSWORD=pswd /mnt/script.sh'

如果容器内默认是bash,也可以换成bash -c。

方式二:使用kubectl exec的--env参数

kubectl exec本身支持--env(缩写-e)选项来设置环境变量,直接在执行脚本前指定即可:

kubectl exec -e PASSWORD=pswd client -n namespace -- /mnt/script.sh

这种方式更简洁,不需要依赖shell包裹,环境变量会直接作用于后续执行的脚本进程。

注意:确保你的script.sh脚本里正确读取了PASSWORD变量(比如用$PASSWORD引用),否则即使传递了也无法生效。

内容的提问来源于stack exchange,提问作者user3142695

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 11:40:36