diff --git a/scripts/pushDockerDigestTag.sh b/scripts/pushDockerDigestTag.sh new file mode 100644 index 0000000000..a705eb9e0e --- /dev/null +++ b/scripts/pushDockerDigestTag.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env bash + +scriptName=`basename "$0"` + +if [ "$#" -ne 2 ]; then + echo "Usage: ${scriptName} " + exit 1 +fi + +echo "${scriptName} called with:" +image=$1 +echo " image: $image" +existingTag=$2 +echo " existingTag: $existingTag" + +DIGEST_LENGTH=12 + +# Note that this command should work even if the image is already present locally. +digest=`docker pull ${image}:${existingTag} | grep "Digest:" | awk -F':' '{print $3}' | cut -c 1-$DIGEST_LENGTH` + +if [ ${#digest} != $DIGEST_LENGTH ] +then + echo "Unexpected length for digest: '$digest'" + exit 1 +fi + +newTag=${existingTag}_${digest} +docker tag ${image}:${existingTag} ${image}:${newTag} +docker push ${image}:${newTag} + +echo "Pushed ${image}:${existingTag} to ${image}:${newTag}"