Skip to content

Instantly share code, notes, and snippets.

@itaysk
Last active April 7, 2025 08:31
Show Gist options
  • Save itaysk/c023de03fe74dd3d5db336b7f9699b6b to your computer and use it in GitHub Desktop.
Save itaysk/c023de03fe74dd3d5db336b7f9699b6b to your computer and use it in GitHub Desktop.
Get latest (highest) version of a Docker Hub image
curl -L --fail "https://hub.docker.com/v2/repositories/${DOCKERHUB_REPO}/${DOCKERHUB_IMAGE}/tags/?page_size=1000" | \
jq '.results | .[] | .name' -r | \
sed 's/latest//' | \
sort --version-sort | \
tail -n 1
@amerkurev
Copy link

Thanks for this!

@mmaous
Copy link

mmaous commented May 23, 2024

@majamee
Copy link

majamee commented Mar 6, 2025

Thank you for the code, I did some testing and improvements for my use case. Maybe these changes are helpful to anyone as well.

My strategy is to pull as little info (page_size=2) as possible in order to get to the result I am looking for:

curl -sL "https://hub.docker.com/v2/repositories/${DOCKERHUB_REPO}/${DOCKERHUB_IMAGE}/tags/?page_size=2" | \
        jq '.results | .[] | .name' -r | \
        sed '/latest/d' | \
        head -n 1

@Reedef
For official docker images just use ${DOCKERHUB_REPO}=library
E.g.:

curl -sL "https://hub.docker.com/v2/repositories/library/alpine/tags/?page_size=2" | \ 
        jq '.results | .[] | .name' -r | \
        sed '/latest/d' | \
        head -n 1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment