我想检索格式repository:tag部分中不包含cmp
的所有图像的列表。我正在尝试使用,但我面临的问题很少。repository
yq
我的yaml文件结构:
actions:
install: ...
uninstall: ...
images:
foo:
imageType:"docker"
repository: localhost:3000/cmp/foo
tag: latest
bar:
imageType:"docker"
repository: localhost:3000/bar
tag: latest
fizz:
imageType:"docker"
repository: localhost:3000/fizz
tag: latest
我的 Powershell 脚本:
$keys = yq eval 'del(.images | .. | select(.repository == """*cmp*""")) | .images | keys' $porterPath
foreach($key in $keys) {
$key = $key.Replace("- ", "") #All elements of $keys need to be strip from "- "
$repository = yq eval ".images | .$key | .repository"
$tag = yq eval ".images | .$key | .tag"
$image = $repository":"$tag
writeToFile($image)
}
第一个 yq 表达式添加- repository
到输出列表的末尾,$keys
因此它看起来像这样:
- bar
- fizz
- repository
为什么我要- repository
走到最后$keys
?
有没有更好的方法用 yq 转换 yaml 以获取输出列表包含:repository:tag?