diff --git a/install/11_docker.sh b/install/11_docker.sh index d7ac6ca3dc3050a3fe1c2941789bdc02e374d52e..0d9ea5b98ac10d51da5fdc9cb651b72132513059 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 0000000000000000000000000000000000000000..37c6009317dcb2a1fd12d8d3f7c398cef5564836 --- /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