1

我想检索格式repository:tag部分中包含cmp的所有图像的列表。我正在尝试使用,但我面临的问题很少。repositoryyq

我的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?

4

0 回答 0