如何检索图像的最新标签?

Ida*_*dar 6 docker

鉴于以下图像列表,我将如何检索最新的标签?(0.0.268)我猜这可能是bash和Go模板的结合,但我无法弄明白......

my-image 0.0.1 fd704b8d675e
my-image 0.0.2 9294a62d2c38
my-image 0.0.9 325326e8f7a2
my-image 0.0.10 b97c64b198d9
my-image 0.0.268 8a89b5fac348

例如:
通过运行以下命令(bx cr是IBM Bluemix CLI):

tagsList=$(bx cr images --format "{{if (eq .Repository \"myregistry/mynamespace/myimage\")}} {{.Tag}}{{end}}")
Run Code Online (Sandbox Code Playgroud)

回声$tagsList是:

0.0.10 0.0.12 0.0.13 0.0.14 0.0.15 0.0.3 0.0.4 0.0.5 0.0.7
Run Code Online (Sandbox Code Playgroud)

在这个列表中,我需要最新的标签,即0.0.15.

gle*_*oux 5

要获取最后一个标记<major_version>.<medium_version>.<minor_version>:

file.txt:

my-image 0.10.1 fd704b8d675e
my-image 2.0.2 9294a62d2c38
my-image 0.0.9 325326e8f7a2
my-image 10.0.3 b97c64b198d9
my-image 10.0.10 b97c64b198d9
my-image 0.0.268 8a89b5fac348
my-image 10.0.6 b97c64b198d9
Run Code Online (Sandbox Code Playgroud)

last_tag.sh:

#!/usr/bin/env bash

cut -d' ' -f2 file.txt \
    | sort -t . -k1,1 -k2,2 -k3,3 -nr \
    | head -1
Run Code Online (Sandbox Code Playgroud)

-t .:精确定界符.
-k n,n:排序第n列(从1开始)
-nr:按降序排序编号(无字符串)
-k1,1 -k2,2 -k3,3:按顺序排列第1列,第2列,第3列,即主要版本,中等版本然后是次要版.

输出:

10.0.10
Run Code Online (Sandbox Code Playgroud)