Merge pull request #2426 from dokku/2425_mh-tag-force-option

add force option on docker tag when available. closes #2425
This commit is contained in:
Jose Diaz-Gonzalez
2016-09-25 01:55:43 -06:00
committed by GitHub
2 changed files with 22 additions and 1 deletions

View File

@@ -222,6 +222,11 @@ is_image_herokuish_based() {
docker run "$DOKKU_GLOBAL_RUN_ARGS" --entrypoint="/bin/sh" $DOCKER_ARGS "$@" -c "test -f /exec" &> /dev/null
}
get_docker_version() {
CLIENT_VERSION_STRING="$(docker version -f="{{ .Client.Version }}")"
echo "$CLIENT_VERSION_STRING"
}
is_number() {
declare desc="returns 0 if input is a number"
local NUMBER=$1; local NUM_RE='^[0-9]+$'

View File

@@ -2,7 +2,23 @@
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
is_tag_force_available() {
CLIENT_VERSION_STRING="$(get_docker_version)"
MAJOR_VERSION=$(echo "$CLIENT_VERSION_STRING" | awk '{split($0,a,"."); print a[1]}')
MINOR_VERSION=$(echo "$CLIENT_VERSION_STRING" | awk '{split($0,a,"."); print a[2]}')
PATCH_VERSION=$(echo "$CLIENT_VERSION_STRING" | awk '{split($0,a,"."); print a[3]}')
# docker tag -f was dropped in 1.12.0
if [[ "$MAJOR_VERSION" -ge 1 ]] && [[ "$MINOR_VERSION" -ge 12 ]]; then
return 1
else
return 0
fi
}
tag_image() {
declare desc="convenience method for docker tag interface"
docker tag -f "$1" "$2"
[[ $(is_tag_force_available) ]] && TAG_OPTS="-f"
# shellcheck disable=SC2086
docker tag $TAG_OPTS "$1" "$2"
}