You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.2 KiB
Bash
54 lines
1.2 KiB
Bash
#!/bin/bash
|
|
|
|
PROGNAME=$(basename $0)
|
|
VERSION_BUILD=$1
|
|
|
|
function error_exit
|
|
{
|
|
echo "${PROGNAME}: ${1:-"Unknown Error"}" 1>&2
|
|
exit 1
|
|
}
|
|
|
|
if [ "$1" = "" ]; then
|
|
error_exit "Please provide version as first argument."
|
|
fi
|
|
|
|
SEMVER=${VERSION_BUILD#*v}
|
|
VERSION=`echo $SEMVER | awk '{split($0,a,"."); print a[1]}'`
|
|
BUILD=`echo $SEMVER | awk '{split($0,a,"."); print a[2]}'`
|
|
PATCH=`echo $SEMVER | awk '{split($0,a,"."); print a[3]}'`
|
|
|
|
if [ "${VERSION}" = "" ]; then
|
|
echo "Please provide a semantic version."
|
|
exit 1
|
|
fi
|
|
|
|
if [ "${BUILD}" = "" ]; then
|
|
BUILD='0'
|
|
fi
|
|
|
|
if [ "${PATCH}" = "" ]; then
|
|
PATCH='0'
|
|
fi
|
|
|
|
push_docker() {
|
|
echo " -> push $1 $2"
|
|
docker tag $1 $2 || exit 1
|
|
docker push $2 || exit 1
|
|
}
|
|
|
|
push_all() {
|
|
IMAGE_NAME_VERSION=${1}${VERSION}.${BUILD}.${PATCH}
|
|
echo "Pulling $IMAGE_NAME_VERSION..."
|
|
docker pull ${IMAGE_NAME_VERSION} || exit 1
|
|
echo "Pushing $IMAGE_NAME_VERSION..."
|
|
push_docker ${IMAGE_NAME_VERSION} ${1}${VERSION}.${BUILD}
|
|
push_docker ${IMAGE_NAME_VERSION} ${1}${VERSION}
|
|
push_docker ${IMAGE_NAME_VERSION} ${1}latest
|
|
}
|
|
|
|
IMAGE_NAME=containrrr/watchtower
|
|
push_all ${IMAGE_NAME}:
|
|
push_all ${IMAGE_NAME}:armhf-
|
|
push_all ${IMAGE_NAME}:arm64v8-
|