blob: add327228f135534b05f7036d6258341c49c7db3 [file] [log] [blame]
#!/usr/bin/env bash
#
# Copyright 2017-present Open Networking Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
###########################################################
# #
# Tags and push all the local images to a docker-registry #
# #
###########################################################
#
# Displays the help menu.
#
display_help () {
echo "Usage: $0 {--push|--help} [docker-registry] [tag=candidate] " >&2
echo " "
echo " -h, --help Display this help message."
echo " -r, --registry Tags and push all the local docker images to <docker-registry>"
echo " "
echo " docker-registry The address of the registry"
echo " tag The tag to be used"
echo " "
echo "Example usages:"
echo " ./tag_and_push.sh -r 192.168.10.100:30500"
echo " ./tag_and_push.sh -r 192.168.10.100:30500 devel"
}
#
# Tag and push all the locally available docker images
#
tag_and_push () {
echo "Pushing images to $DOCKER_REGISTRY with tag $DOCKER_TAG"
echo " "
# reading docker images
DOCKER_IMAGES=$(docker images --format="{{.Repository}}:{{.Tag}}" --filter "dangling=false" | grep -v none | grep "^xosproject")
# split string to list only on newlines
IFS=$'\n'
for image in $DOCKER_IMAGES;
do
docker tag "$image $DOCKER_REGISTRY/$image"
docker push "$DOCKER_REGISTRY/$image"
done
}
#
# Init
#
CLI_OPT=$1
DOCKER_REGISTRY=$2
DOCKER_TAG=${3:-"candidate"}
while :
do
case $CLI_OPT in
-r | --registry)
tag_and_push
exit 0
;;
-h | --help)
display_help
exit 0
;;
--) # End of all options
shift
break
;;
*)
echo Error: Unknown option: "$CLI_OPT" >&2
echo " "
display_help
exit -1
;;
esac
done