aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rwxr-xr-xtools/build-docker-image94
-rwxr-xr-xtools/update-build-links10
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
+