我正在尝试将所有文件从图像复制到卷。然而,kubernetes 似乎没有正确解释通配符。因此,当我使用以下命令时,它会失败并显示“未找到”:
initContainers:
- name: init-container-name
image: <image path>
command:
- cp
- /foo/bar/*
- /output
如何让 Kubernetes 正确解释 *?有没有办法复制内容而无需周围的
bar
文件夹?
我可以复制整个文件夹:
initContainers:
- name: init-container-name
image: <image path>
command:
- cp
- -r
- /foo/bar
- /output
但是当我只想将文件本身输出时,这会导致
/output/bar
。我也尝试过- "/foo/bar/*"
和- "/foo/bar/"*
,但这也不起作用。
如何让 Kubernetes 正确解释 *?
你不知道。
这里的问题是通配符由您的 shell 解释,并且您没有运行 shell 命令。您正在将文字字符串
/foo/bar/*
传递给 cp
命令。
您需要将命令包装在 shell 中,如下所示:
initContainers:
- name: init-container-name
image: <image path>
command:
- sh
- -c
- |
cp /foo/bar/* /output