我正在尝试将init容器添加到部署中,但是由于某种原因,我无法使env vars正常工作。
仅说明一下,这就是我要尝试的:
initContainers:
- name: init-db
image: mysql:5.7
env:
- name: TEST
value: nada
args: ["echo", "${TEST}"]
但是无论我做什么,env var都不起作用,echo
总是返回${TEST}
而不是nada
有任何提示吗?
答案 0 :(得分:2)
就像提到的评论和其他答案一样,您需要正确地使用shell进行ENV替换。因此,请替换行
args: ["echo", "${TEST}"]
中的代码用于 p>
command: ['sh', '-c', 'echo ${TEST}']
答案 1 :(得分:1)
您需要使用shell才能正确进行ENV var替换。例如:
initContainers:
- name: init-db
image: mysql:5.7
env:
- name: TEST
value: nada
command:
- /bin/sh
- -c
- echo "${TEST}"
答案 2 :(得分:0)
根据 Kubernetes 官方文档,command 或 args 字段中需要扩展的变量需要使用括号 $(TEST)
。我在使用方括号时出错,因为 args 上的 env vars 没有正确扩展。工作示例:
initContainers:
- name: my-container
image: 'my-image'
envFrom:
- configMapRef:
name: my-config
args:
- '-path=/$(MY_ENV_VAR)'