diff --git a/Dockerfile b/Dockerfile
index fdb08873120f873d9f54d7d7bc3323d4613342dd..d2b57345860f5dbb4b566e163bbc7b7ad0ad7fde 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -11,24 +11,17 @@ ENV DEBIAN_FRONTEND noninteractive
 ENV DEBIAN_PRIORITY critical
 ENV DEBCONF_NOWARNINGS yes
 
+# Fix locale
+RUN locale-gen en_US.UTF-8
+
 # Install OpenSSH Server
-RUN apt-get update
 RUN apt-get install -y openssh-server
 RUN mkdir -p /var/run/sshd
-RUN echo "AllowUsers jenkins" >> /etc/ssh/sshd_config && echo "AllowAgentForwarding yes" >> /etc/ssh/sshd_config
-
-# Create Jenkins user
-RUN useradd -m -d /var/lib/jenkins -s /bin/bash -p $(openssl passwd -1 A4TBYULaVEYstxT7dZLb) jenkins
-RUN su - jenkins -c 'git config --global user.email "jenkins@codemate.se"'
-RUN su - jenkins -c 'git config --global user.name "Jenkins"'
-RUN echo "jenkins   ALL=(ALL)   ALL" > /etc/sudoers.d/jenkins
 
-# Setup SSH for Jenkins user
-ADD ssh /var/lib/jenkins/.ssh
-RUN chmod 700 /var/lib/jenkins/.ssh && chmod 644 /var/lib/jenkins/.ssh/* && chmod 600 /var/lib/jenkins/.ssh/id_rsa && chown -R jenkins /var/lib/jenkins/.ssh
-
-# Fix locale
-RUN locale-gen en_US.UTF-8
+# Run install scripts
+ENV JENKINS_HOME /var/lib/jenkins
+ADD install /tmp/install
+RUN for INSTALLER in `ls /tmp/install/*.sh | sort -n`; do /bin/bash $INSTALLER; done && rm -rf /tmp/install
 
 # Start SSH Daemon
 EXPOSE 22
diff --git a/install/00_jenkins_user.sh b/install/00_jenkins_user.sh
new file mode 100755
index 0000000000000000000000000000000000000000..0353e1cc3c834e904c5a36b4a32045457889ceba
--- /dev/null
+++ b/install/00_jenkins_user.sh
@@ -0,0 +1,23 @@
+#!/usr/bin/env bash
+
+set -e # Exit on errors
+
+# Create Jenkins user
+useradd -m -d $JENKINS_HOME -s /bin/bash -p $(openssl passwd -1 A4TBYULaVEYstxT7dZLb) jenkins
+su - jenkins -c 'git config --global user.email "jenkins@codemate.se"'
+su - jenkins -c 'git config --global user.name "Jenkins"'
+echo "jenkins   ALL=(ALL)   ALL" > /etc/sudoers.d/jenkins
+
+# Setup SSH
+INSTALL=${0%/*}
+cp -R $INSTALL/ssh $JENKINS_HOME/.ssh
+chmod 700 $JENKINS_HOME/.ssh
+chmod 644 $JENKINS_HOME/.ssh/config
+chmod 600 $JENKINS_HOME/.ssh/id_rsa
+chmod 644 $JENKINS_HOME/.ssh/id_rsa.pub
+chown -R jenkins:jenkins $JENKINS_HOME/.ssh
+echo "AllowUsers jenkins" >> /etc/ssh/sshd_config
+echo "AllowAgentForwarding yes" >> /etc/ssh/sshd_config
+
+# Create tool dir
+mkdir -p $JENKINS_HOME/tools
diff --git a/install/10_build_essential.sh b/install/10_build_essential.sh
new file mode 100755
index 0000000000000000000000000000000000000000..2f3df39b5451e0cd2a7e458b6abd5849d4c1786e
--- /dev/null
+++ b/install/10_build_essential.sh
@@ -0,0 +1,6 @@
+#!/usr/bin/env bash
+
+set -e # Exit on errors
+
+apt-get -y install build-essential checkinstall
+apt-get -y install cvs subversion git-core mercurial
diff --git a/install/20_docker.sh b/install/20_docker.sh
new file mode 100755
index 0000000000000000000000000000000000000000..8836745bf0cece922a1b6a8ddff23147b3b4a496
--- /dev/null
+++ b/install/20_docker.sh
@@ -0,0 +1,12 @@
+#!/usr/bin/env bash
+
+set -e # Exit on errors
+
+mkdir -p $JENKINS_HOME/tools/docker/bin
+cd $JENKINS_HOME/tools/docker/bin
+wget https://get.docker.io/builds/Linux/x86_64/docker-latest -O docker
+chmod 755 docker
+
+DOCKER_HOME=$JENKINS_HOME/tools/docker
+echo "export PATH=$DOCKER_HOME/bin:\$PATH" > /etc/profile.d/docker.sh
+chmod 755 /etc/profile.d/docker.sh
diff --git a/install/30_ant.sh b/install/30_ant.sh
new file mode 100755
index 0000000000000000000000000000000000000000..e4d8996573af9367ec3ddce0d844655cd8dde390
--- /dev/null
+++ b/install/30_ant.sh
@@ -0,0 +1,12 @@
+#!/usr/bin/env bash
+
+set -e # Exit on errors
+
+cd $JENKINS_HOME/tools
+
+curl -s http://apache.mirrors.spacedump.net/ant/binaries/apache-ant-1.9.3-bin.tar.gz | tar xzf -
+
+ANT_HOME=$JENKINS_HOME/tools/apache-ant-1.9.3
+echo "export ANT_HOME=$ANT_HOME" > /etc/profile.d/ant.sh
+echo "export PATH=$ANT_HOME/bin:\$PATH" >> /etc/profile.d/ant.sh
+chmod 755 /etc/profile.d/ant.sh
diff --git a/install/40_maven.sh b/install/40_maven.sh
new file mode 100755
index 0000000000000000000000000000000000000000..1967a3a53a8c460e3f2ad55b9f8daac737741f58
--- /dev/null
+++ b/install/40_maven.sh
@@ -0,0 +1,15 @@
+#!/usr/bin/env bash
+
+set -e # Exit on errors
+
+cd $JENKINS_HOME/tools
+
+curl -s http://apache.mirrors.spacedump.net/maven/maven-3/3.2.1/binaries/apache-maven-3.2.1-bin.tar.gz | tar xzf -
+
+mkdir -p $JENKINS_HOME/.m2
+cp ${0%/*}/maven/settings.xml $JENKINS_HOME/.m2/settings.xml
+
+MAVEN_HOME=$JENKINS_HOME/tools/apache-maven-3.2.1
+echo "export MAVEN_HOME=$MAVEN_HOME" > /etc/profile.d/maven.sh
+echo "export PATH=$MAVEN_HOME/bin:\$PATH" >> /etc/profile.d/maven.sh
+chmod 755 /etc/profile.d/maven.sh
diff --git a/install/50_android.sh b/install/50_android.sh
new file mode 100755
index 0000000000000000000000000000000000000000..09bcfeeb7eb78fb12f124546a0ce0d8dde2d85e6
--- /dev/null
+++ b/install/50_android.sh
@@ -0,0 +1,20 @@
+#!/usr/bin/env bash
+
+set -e # Exit on errors
+
+cd $JENKINS_HOME/tools
+
+apt-get -y install libc6-i386 lib32stdc++6 lib32gcc1 lib32tinfo5 lib32ncurses5 lib32z1
+
+curl -s http://dl.google.com/android/android-sdk_r22.6-linux.tgz | tar xzf -
+
+( sleep 10 && while :
+do
+  echo 'y'
+  sleep 2
+done ) | android-sdk-linux/tools/android update sdk -u -t platform-tools,build-tools-19.0.1,android-16,extra-android-support
+
+ANDROID_HOME=$JENKINS_HOME/tools/android-sdk-linux
+echo "export ANDROID_HOME=$ANDROID_HOME" > /etc/profile.d/android.sh
+echo "export PATH=$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:\$PATH" >> /etc/profile.d/android.sh
+chmod 755 /etc/profile.d/android.sh
diff --git a/install/60_erlang.sh b/install/60_erlang.sh
new file mode 100755
index 0000000000000000000000000000000000000000..9b756d59e7a60ff99180b97c6d03c3c8928beb20
--- /dev/null
+++ b/install/60_erlang.sh
@@ -0,0 +1,24 @@
+#!/usr/bin/env bash
+
+set -e # Exit on errors
+
+cd $JENKINS_HOME/tools
+exit 0
+
+apt-get -y install libncurses5-dev openssl libssl-dev fop xsltproc unixodbc-dev libwxbase2.8 libwxgtk2.8-dev libqt4-opengl-dev
+
+curl -s http://www.erlang.org/download/otp_src_R16B03-1.tar.gz | tar xzf -
+cd otp_src_R16B03-1
+
+./configure --prefix=$JENKINS_HOME/tools/erlang/R16B03 && make && make install
+
+cd $JENKINS_HOME/tools
+
+rm -rf otp_src_R16B03-1
+
+ERL_TOP=$JENKINS_HOME/tools/erlang/R16B03
+echo "export ERL_TOP=$ERL_TOP" > /etc/profile.d/erlang.sh
+echo "export PATH=$ERL_TOP/bin:\$PATH" >> /etc/profile.d/erlang.sh
+chmod 755 /etc/profile.d/erlang.sh
+echo "TZQPJJRMMVKMHAWMVPMB" > $JENKINS_HOME/.erlang.cookie
+chown -R jenkins:jenkins $JENKINS_HOME/.erlang.cookie
diff --git a/install/99_cleanup.sh b/install/99_cleanup.sh
new file mode 100755
index 0000000000000000000000000000000000000000..c1eea6b999398a4e12689227d6577b9d463c2d4d
--- /dev/null
+++ b/install/99_cleanup.sh
@@ -0,0 +1,5 @@
+#!/usr/bin/env bash
+
+set -e # Exit on errors
+
+chown -R jenkins:jenkins $JENKINS_HOME
diff --git a/install/maven/settings.xml b/install/maven/settings.xml
new file mode 100644
index 0000000000000000000000000000000000000000..82edaf47581876a945f3271abe40b99649d6137c
--- /dev/null
+++ b/install/maven/settings.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<settings>
+
+	<mirrors>
+		<mirror>
+			<id>Nexus</id>
+			<name>Nexus Public Mirror</name>
+			<url>http://nexus:8081/nexus/content/groups/public</url>
+			<mirrorOf>central</mirrorOf>
+		</mirror>
+	</mirrors>
+
+	<pluginGroups>
+		<pluginGroup>com.atlassian.maven.plugins</pluginGroup>
+	</pluginGroups>
+
+</settings>
\ No newline at end of file
diff --git a/ssh/authorized_keys2 b/install/ssh/authorized_keys2
similarity index 100%
rename from ssh/authorized_keys2
rename to install/ssh/authorized_keys2
diff --git a/ssh/config b/install/ssh/config
similarity index 100%
rename from ssh/config
rename to install/ssh/config
diff --git a/ssh/id_rsa b/install/ssh/id_rsa
similarity index 100%
rename from ssh/id_rsa
rename to install/ssh/id_rsa
diff --git a/ssh/id_rsa.pub b/install/ssh/id_rsa.pub
similarity index 100%
rename from ssh/id_rsa.pub
rename to install/ssh/id_rsa.pub