#!/bin/bash if [[ $EUID -eq 0 ]]; then echo "This script must not be run as root. Instead add yourself to the docker group." 1>&2 exit 1 fi TOPDIR=$(git rev-parse --show-toplevel) IMGDIR="$(cd "$(dirname "$0")" && pwd)" RELEASE_NAMESPACE=kollaglue NAMESPACE=kollaglue PREFIX=centos-rdo- TAG=$(git rev-parse --short HEAD) RELEASE_TAG=latest MAX_TRIES=1 usage () { cat < --private-registry, -r --namespace, -n --tag, -t --push, -p --force-rm, -f --no-cache, -N --pull, -u --release --no-use-released-parent --retry EOF } [ -f $TOPDIR/.buildconf ] && . $TOPDIR/.buildconf [ -f $IMGDIR/.buildinfo ] && . $IMGDIR/.buildinfo [ -f $IMGDIR/.buildconf ] && . $IMGDIR/.buildconf ARGS=$(getopt -o hr:n:t:pfuN -l help,prefix:,namespace:,push,pull,private-registry:,release,tag:,force-rm,no-cache,no-use-released-parent,retry: -- "$@") || { usage >&2; exit 2; } eval set -- "$ARGS" while :; do case "$1" in (--help|-h) usage exit 0 ;; (--prefix) shift FORCE_PREFIX="$1" ;; (--release) MODE=release NAMESPACE=$RELEASE_NAMESPACE TAG=$RELEASE_TAG ;; (--tag|-t) shift TAG="$1" ;; (--push|-p) PUSH=1 ;; (--pull|-u) BUILDFLAGS="${BUILDFLAGS} --pull=true" ;; (--force-rm|-f) BUILDFLAGS="${BUILDFLAGS} --force-rm=true" ;; (--no-cache|-N) BUILDFLAGS="${BUILDFLAGS} --no-cache" ;; (--private-registry|-r) shift REGISTRY="$1" ;; (--namespace|-n) shift NAMESPACE="$1" ;; (--no-use-released-parent) USE_CURRENT_TAG=1 ;; (--retry) shift MAX_TRIES=$((MAX_TRIES + $1)) ;; (--) break ;; esac shift done if [[ $USE_CURRENT_TAG = 1 ]]; then PARENT_TAG=$TAG else PARENT_TAG=$RELEASE_TAG fi if [ "$NAMESPACE" = "$RELEASE_NAMESPACE" ] \ && [ "$TAG" = "$RELEASE_TAG" ] \ && ! [ "$MODE" = "release" ]; then echo "ERROR: use --release to build a release image" >&2 exit 1 fi if [[ -n "${PREFIX}" && -n "${FORCE_PREFIX}" ]]; then PREFIX="${FORCE_PREFIX}" fi if [[ -n $REGISTRY ]]; then NAMESPACE="${REGISTRY}/${NAMESPACE}" fi IMAGE="${PREFIX}${IMGDIR##*/}" FULLIMAGE="${NAMESPACE}/${IMAGE}${TAG:+:${TAG}}" cat <