Docker Hub の image から tag を探そうと思ったときに、数が多いと中々目当てのものが見つからなかったりする。
API で取得するスクリプトを組んでる人がいたが、API のバージョンが古かったり、タグがたくさんあるとページングされたりするので、自分で書き直してみる。
#!/usr/bin/env bash function docker-taglist() { local image=${1} local response=$(curl --silent --show-error "https://registry.hub.docker.com/v2/repositories/${image}/tags/") local names=$(echo ${response} | jq -r .results[].name) echo -e "${names}" # 最大 5 ページまで取得する local page=1 local next=$(echo ${response} | jq -r .next) while [[ ${page} -lt 5 && ${next} != "null" ]] do response=$(curl --silent --show-error "${next}") names="${names}\n$(echo ${response} | jq -r .results[].name)" echo -e "${names}" page=$((${page}+1)) next=$(echo ${response} | jq -r .next) done }
エイリアスに登録しておけば、こんな感じで使える。
$ docker-taglist library/mysql 5.5 5.5.62 5.6 5.6.43 ...
ページ数は引数で受け取れるようにするといいかもしれない。