From fa661189fb7cb449b021a546c674fb5126f47f35 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Erik=20Hedenstr=C3=B6m?= <erik@codemate.se>
Date: Thu, 13 Mar 2014 17:18:25 +0100
Subject: [PATCH] Added docker-build.sh script

---
 install/11_docker.sh           |  3 ++-
 install/docker/docker-build.sh | 37 ++++++++++++++++++++++++++++++++++
 2 files changed, 39 insertions(+), 1 deletion(-)
 create mode 100644 install/docker/docker-build.sh

diff --git a/install/11_docker.sh b/install/11_docker.sh
index d7ac6ca..0d9ea5b 100755
--- a/install/11_docker.sh
+++ b/install/11_docker.sh
@@ -4,7 +4,8 @@ set -e # Exit on errors
 
 mkdir -p $JENKINS_HOME/tools/docker/bin
 curl -s https://get.docker.io/builds/Linux/x86_64/docker-latest -o $JENKINS_HOME/tools/docker/bin/docker
-chmod 755 $JENKINS_HOME/tools/docker/bin/docker
+cp ${0%/*}/docker/docker-build.sh $JENKINS_HOME/tools/docker/bin
+chmod 755 $JENKINS_HOME/tools/docker/bin/*
 
 echo "export PATH=$JENKINS_HOME/tools/docker/bin:\$PATH" > /etc/profile.d/docker.sh
 chmod 755 /etc/profile.d/docker.sh
diff --git a/install/docker/docker-build.sh b/install/docker/docker-build.sh
new file mode 100644
index 0000000..37c6009
--- /dev/null
+++ b/install/docker/docker-build.sh
@@ -0,0 +1,37 @@
+#!/usr/bin/env bash
+
+set -e # Exit on errors
+
+# Extract info from Dockerfile
+
+DOCKER_REPOSITORY=`grep '^# REPOSITORY' Dockerfile | awk -F ' ' '{print $3}'`
+if [ ! ${DOCKER_REPOSITORY:+x} ]; then
+    DOCKER_REPOSITORY=`echo 'registry.codemate.se/'${PWD##*/}`
+fi
+
+DOCKER_TAG=`grep '^# VERSION' Dockerfile | awk -F ' ' '{print $3}'`
+if [ ! ${DOCKER_TAG:+x} ]; then
+    DOCKER_TAG='1.0.0'
+fi
+
+# Build and publish image
+
+docker build -rm -t $DOCKER_REPOSITORY .
+docker tag $DOCKER_REPOSITORY $DOCKER_REPOSITORY:$DOCKER_TAG
+docker push $DOCKER_REPOSITORY
+
+set +e # Ignore errors
+
+# Remove stopped containers
+
+for CONTAINER in $(docker ps -a | awk '/Exit -?[0-9]+/ { print $1 }'); do
+    docker rm $CONTAINER
+done
+
+# Remove untagged images
+
+for IMAGE in $(docker images | awk '/^<none>/ { print $3 }'); do
+    docker rmi $IMAGE
+done
+
+exit 0
\ No newline at end of file
-- 
GitLab