diff options
Diffstat (limited to 'tools')
| -rwxr-xr-x | tools/build-docker-image | 94 | ||||
| -rwxr-xr-x | tools/update-build-links | 10 |
2 files changed, 104 insertions, 0 deletions
diff --git a/tools/build-docker-image b/tools/build-docker-image new file mode 100755 index 000000000..66e534fa4 --- /dev/null +++ b/tools/build-docker-image @@ -0,0 +1,94 @@ +#!/bin/bash + +NAMESPACE=kollaglue +PREFIX=fedora-rdo- +TAG=$(git rev-parse --short HEAD) +IMAGE="${PREFIX}${PWD##*/}" + +TOPDIR=$(git rev-parse --show-toplevel) + +usage () { + cat <<EOF +$0: usage: $0 [options] + +Options: + +--namespace, -n <namespace> +--tag, -t <tag> +--push, -p +--no-cache, -N +--release +EOF +} + +[ -f ./.buildconf ] && . ./.buildconf +[ -f $TOPDIR/.buildconf ] && . $TOPDIR/.buildconf + +ARGS=$(getopt -o 'n:t:pN' -l help,namespace:,push,release,tag:,no-cache -- "$@") || { usage >&2; exit 2; } + +eval set -- "$ARGS" + +while :; do + case "$1" in + + (--help) usage + exit 0 + ;; + + (--release) MODE=release + TAG=latest + ;; + + (--tag|-t) shift + TAG="$1" + ;; + + (--push|-p) PUSH=1 + ;; + + (--no-cache|-N) + BUILDFLAGS="${BUILDFLAGS} --no-cache" + ;; + + (--namespace|-n) + shift + NAMESPACE="1" + ;; + + (--) break + ;; + + esac + + shift +done + +FULLIMAGE="${NAMESPACE}/${IMAGE}${TAG:+:${TAG}}" + +cat <<EOF +====================================================================== +$FULLIMAGE +====================================================================== + +EOF + +if [ "$MODE" = "release" ]; then + echo "*** YOU ARE BUILDING A RELEASE IMAGE ***" + echo +fi + +if ! docker build ${BUILDFLAGS} -t "$FULLIMAGE" .; then + echo "ERROR: failed to build $FULLIMAGE" + exit 1 +fi + +echo "Built: $FULLIMAGE" + +if [ "$PUSH" = 1 ]; then + if ! docker push "$FULLIMAGE"; then + echo "ERROR: failed to push $FULLIMAGE" + exit 1 + fi + + echo "Pushed: $FULLIMAGE" +fi diff --git a/tools/update-build-links b/tools/update-build-links new file mode 100755 index 000000000..ac6fa53a8 --- /dev/null +++ b/tools/update-build-links @@ -0,0 +1,10 @@ +#!/bin/sh + +cd $(git rev-parse --show-toplevel) +find docker -name Dockerfile | while read dockerfile; do + dir=${dockerfile%/*} + link=$(python -c 'import os,sys; print os.path.relpath(sys.argv[1], sys.argv[2])' \ + $PWD/tools/build-docker-image $dir) + ln -sf $link $dir/build +done + |
