#!/bin/sh images=$(grep 'image:' docker-compose.yml | grep -v '#' | sed 's/^ *//' | cut -d ' ' -f2 | cut -d ':' -f1) for image in $images do if [[ $image != gcr* ]]; then # ver=$(curl -s https://registry.hub.docker.com/v2/repositories/${image}/tags | jq -r '[.results[] | select(.name | contains("ubuntu") | not) | select(.name | contains("main") | not ) | select(.name | contains("master") | not ) | select(.name | contains("latest") | not) | select(.name | contains("rc") | not) | select(.name | contains("-") | not) | select(.name | contains("."))] | sort_by(.name|sub("^v";"")|split(".")|map(tonumber)) | reverse | first | .name') ver=$(curl -s https://registry.hub.docker.com/v2/repositories/${image}/tags?page_size=20 | jq -r '[.results[] | select(.name | test("^v?[0-9|.]+(-alpine)?$")) ] | sort_by(.name|sub("^v";"")|split(".")|map(tonumber)) | reverse | first | .name') echo "$image:$ver" sed -i "s#image: $image:.*#image: $image:$ver#" docker-compose.yml fi done git --no-pager diff