github.com/weaveworks/common@v0.0.0-20230728070032-dd9e68f319d5/tools/push-images (about) 1 #!/usr/bin/env bash 2 3 set -o errexit 4 set -o nounset 5 set -o pipefail 6 7 QUAY_PREFIX=quay.io/ 8 IMAGES=$(make images) 9 IMAGE_TAG=$(./tools/image-tag) 10 11 usage() { 12 echo "$0 [-no-docker-hub]" 13 } 14 15 NO_DOCKER_HUB= 16 while [ $# -gt 0 ]; do 17 case "$1" in 18 -no-docker-hub) 19 NO_DOCKER_HUB=1 20 shift 1 21 ;; 22 *) 23 usage 24 exit 2 25 ;; 26 esac 27 done 28 29 pids="" 30 for image in ${IMAGES}; do 31 if [[ "$image" == *"build"* ]]; then 32 continue 33 fi 34 echo "Will push ${image}:${IMAGE_TAG}" 35 docker push "${image}:${IMAGE_TAG}" & 36 pids="$pids $!" 37 38 if [ -z "$NO_DOCKER_HUB" ]; then 39 # remove the quey prefix and push to docker hub 40 docker_hub_image=${image#$QUAY_PREFIX} 41 docker tag "${image}:${IMAGE_TAG}" "${docker_hub_image}:${IMAGE_TAG}" 42 echo "Will push ${docker_hub_image}:${IMAGE_TAG}" 43 docker push "${docker_hub_image}:${IMAGE_TAG}" & 44 pids="$pids $!" 45 fi 46 done 47 48 # Wait individually for tasks so we fail-exit on any non-zero return code 49 for p in $pids; do 50 wait "$p" 51 done 52 53 wait