Last active
November 3, 2023 14:11
-
-
Save robv8r/fa66f5e0fdf001f425fe9facf2db6d49 to your computer and use it in GitHub Desktop.
List Docker Image Tags using bash
Thx for this script. I used a bit of jq/sort/sed to get the version number of the "latest" tag like so. Given that an image can have many tags going way back one probably needs to know apriori which major version is the "latest" and supply that.
docker_latest_image() {
image=$1
major=${2:-1}
tokenUri="https://auth.docker.io/token"
data=("service=registry.docker.io" "scope=repository:$image:pull")
token="$(curl --silent --get --data-urlencode ${data[0]} --data-urlencode ${data[1]} $tokenUri | jq --raw-output '.token')"
listUri="https://registry-1.docker.io/v2/$image/tags/list"
curl --silent --get -H "Accept: application/json" -H "Authorization: Bearer $token" $listUri \
| jq --raw-output ".tags[] | select(. | startswith(\"$major.\"))" | sort -V | sed -n \$p
}
docker_latest_image library/alpine 3
3.18.4
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This is just a clumsy and memory-squandering way to say
for item in "$@";
This adds a quoting error (you want
"$@"
, always, not a bare$@
).