add support for Jenkins Enterprise by cloudbees
diff --git a/1.554.1.1/Dockerfile b/1.554.1.1/Dockerfile
new file mode 100644
index 0000000..2ecbf28
--- /dev/null
+++ b/1.554.1.1/Dockerfile
@@ -0,0 +1,45 @@
+FROM java:openjdk-7u65-jdk
+
+RUN apt-get update && apt-get install -y wget git curl zip && rm -rf /var/lib/apt/lists/*
+
+ENV JENKINS_HOME /var/jenkins_home
+
+# Jenkins is ran with user `jenkins`, uid = 1000
+# If you bind mount a volume from host/vloume from a data container, 
+# ensure you use same uid
+RUN useradd -d "$JENKINS_HOME" -u 1000 -m -s /bin/bash jenkins
+
+# Jenkins home directoy is a volume, so configuration and build history 
+# can be persisted and survive image upgrades
+VOLUME /var/jenkins_home
+
+# `/usr/share/jenkins/ref/` contains all reference configuration we want 
+# to set on a fresh new installation. Use it to bundle additional plugins 
+# or config file with your custom jenkins Docker image.
+RUN mkdir -p /usr/share/jenkins/ref/init.groovy.d
+
+
+COPY init.groovy /usr/share/jenkins/ref/init.groovy.d/tcp-slave-angent-port.groovy
+
+ENV JENKINS_VERSION 1.554.1.1
+
+# could use ADD but this one does not check Last-Modified header 
+# see https://github.com/docker/docker/issues/8331
+RUN curl -L http://nectar-downloads.cloudbees.com/jenkins-enterprise/1.554/war/1.554.1.1/jenkins.war -o /usr/share/jenkins/jenkins.war
+
+ENV JENKINS_UC https://updates.jenkins-ci.org
+RUN chown -R jenkins "$JENKINS_HOME" /usr/share/jenkins/ref
+
+# for main web interface:
+EXPOSE 8080
+
+# will be used by attached slave agents:
+EXPOSE 50000
+
+USER jenkins
+
+COPY jenkins.sh /usr/local/bin/jenkins.sh
+ENTRYPOINT ["/usr/local/bin/jenkins.sh"]
+
+# from a derived Dockerfile, can use `RUN plugin.sh active.txt` to setup /usr/share/jenkins/ref/plugins from a support bundle
+COPY plugins.sh /usr/local/bin/plugins.sh
diff --git a/1.554.1.1/init.groovy b/1.554.1.1/init.groovy
new file mode 100644
index 0000000..83c3a3d
--- /dev/null
+++ b/1.554.1.1/init.groovy
@@ -0,0 +1,9 @@
+import hudson.model.*;
+import jenkins.model.*;
+
+
+Thread.start {
+      sleep 10000
+      println "--> setting agent port for jnlp"
+      Jenkins.instance.setSlaveAgentPort(50000)
+}
diff --git a/1.554.1.1/jenkins.sh b/1.554.1.1/jenkins.sh
new file mode 100755
index 0000000..1bd0f85
--- /dev/null
+++ b/1.554.1.1/jenkins.sh
@@ -0,0 +1,30 @@
+#! /bin/bash
+
+# Copy files from /usr/share/jenkins/ref into /var/jenkins_home
+# So the initial JENKINS-HOME is set with expected content. 
+# Don't override, as this is just a reference setup, and use from UI 
+# can then change this, upgrade plugins, etc.
+copy_reference_file() {
+	f=${1%/} 
+	echo "$f"
+    rel=${f:23}
+    dir=$(dirname ${f})
+    echo " $f -> $rel"    
+	if [[ ! -e /var/jenkins_home/${rel} ]] 
+	then
+		echo "copy $rel to JENKINS_HOME"
+		mkdir -p /var/jenkins_home/${dir:23}
+		cp -r /usr/share/jenkins/ref/${rel} /var/jenkins_home/${rel}; 
+	fi; 
+}
+export -f copy_reference_file
+find /usr/share/jenkins/ref/ -type f -exec bash -c 'copy_reference_file {}' \;
+
+# if `docker run` first argument start with `--` the user is passing jenkins launcher arguments
+if [[ $# -lt 1 ]] || [[ "$1" == "--"* ]]; then
+   exec java $JAVA_OPTS -jar /usr/share/jenkins/jenkins.war $JENKINS_OPTS "$@"
+fi
+
+# As argument is not jenkins, assume user want to run his own process, for sample a `bash` shell to explore this image
+exec "$@"
+
diff --git a/1.554.1.1/plugins.sh b/1.554.1.1/plugins.sh
new file mode 100755
index 0000000..e0df32b
--- /dev/null
+++ b/1.554.1.1/plugins.sh
@@ -0,0 +1,17 @@
+#! /bin/bash
+
+# Parse a support-core plugin -style txt file as specification for jenkins plugins to be installed
+# in the reference directory, so user can define a derived Docker image with just :
+# 
+# FROM jenkins
+# COPY plugins.txt /plugins.txt
+# RUN /usr/share/jenkins/plugins.sh /plugins.txt
+# 
+
+REF=/usr/share/jenkins/ref/plugins
+mkdir -p $REF
+
+while read spec; do
+    plugin=(${spec//:/ }); 
+    curl -L ${JENKINS_UC}/download/plugins/${plugin[0]}/${plugin[1]}/${plugin[0]}.hpi -o $REF/${plugin[0]}.hpi;
+done  < $1
diff --git a/1.554.10.1/Dockerfile b/1.554.10.1/Dockerfile
new file mode 100644
index 0000000..5a23e3f
--- /dev/null
+++ b/1.554.10.1/Dockerfile
@@ -0,0 +1,45 @@
+FROM java:openjdk-7u65-jdk
+
+RUN apt-get update && apt-get install -y wget git curl zip && rm -rf /var/lib/apt/lists/*
+
+ENV JENKINS_HOME /var/jenkins_home
+
+# Jenkins is ran with user `jenkins`, uid = 1000
+# If you bind mount a volume from host/vloume from a data container, 
+# ensure you use same uid
+RUN useradd -d "$JENKINS_HOME" -u 1000 -m -s /bin/bash jenkins
+
+# Jenkins home directoy is a volume, so configuration and build history 
+# can be persisted and survive image upgrades
+VOLUME /var/jenkins_home
+
+# `/usr/share/jenkins/ref/` contains all reference configuration we want 
+# to set on a fresh new installation. Use it to bundle additional plugins 
+# or config file with your custom jenkins Docker image.
+RUN mkdir -p /usr/share/jenkins/ref/init.groovy.d
+
+
+COPY init.groovy /usr/share/jenkins/ref/init.groovy.d/tcp-slave-angent-port.groovy
+
+ENV JENKINS_VERSION 1.554.10.1
+
+# could use ADD but this one does not check Last-Modified header 
+# see https://github.com/docker/docker/issues/8331
+RUN curl -L http://nectar-downloads.cloudbees.com/jenkins-enterprise/1.554/war/1.554.10.1/jenkins.war -o /usr/share/jenkins/jenkins.war
+
+ENV JENKINS_UC https://updates.jenkins-ci.org
+RUN chown -R jenkins "$JENKINS_HOME" /usr/share/jenkins/ref
+
+# for main web interface:
+EXPOSE 8080
+
+# will be used by attached slave agents:
+EXPOSE 50000
+
+USER jenkins
+
+COPY jenkins.sh /usr/local/bin/jenkins.sh
+ENTRYPOINT ["/usr/local/bin/jenkins.sh"]
+
+# from a derived Dockerfile, can use `RUN plugin.sh active.txt` to setup /usr/share/jenkins/ref/plugins from a support bundle
+COPY plugins.sh /usr/local/bin/plugins.sh
diff --git a/1.554.10.1/init.groovy b/1.554.10.1/init.groovy
new file mode 100644
index 0000000..83c3a3d
--- /dev/null
+++ b/1.554.10.1/init.groovy
@@ -0,0 +1,9 @@
+import hudson.model.*;
+import jenkins.model.*;
+
+
+Thread.start {
+      sleep 10000
+      println "--> setting agent port for jnlp"
+      Jenkins.instance.setSlaveAgentPort(50000)
+}
diff --git a/1.554.10.1/jenkins.sh b/1.554.10.1/jenkins.sh
new file mode 100755
index 0000000..1bd0f85
--- /dev/null
+++ b/1.554.10.1/jenkins.sh
@@ -0,0 +1,30 @@
+#! /bin/bash
+
+# Copy files from /usr/share/jenkins/ref into /var/jenkins_home
+# So the initial JENKINS-HOME is set with expected content. 
+# Don't override, as this is just a reference setup, and use from UI 
+# can then change this, upgrade plugins, etc.
+copy_reference_file() {
+	f=${1%/} 
+	echo "$f"
+    rel=${f:23}
+    dir=$(dirname ${f})
+    echo " $f -> $rel"    
+	if [[ ! -e /var/jenkins_home/${rel} ]] 
+	then
+		echo "copy $rel to JENKINS_HOME"
+		mkdir -p /var/jenkins_home/${dir:23}
+		cp -r /usr/share/jenkins/ref/${rel} /var/jenkins_home/${rel}; 
+	fi; 
+}
+export -f copy_reference_file
+find /usr/share/jenkins/ref/ -type f -exec bash -c 'copy_reference_file {}' \;
+
+# if `docker run` first argument start with `--` the user is passing jenkins launcher arguments
+if [[ $# -lt 1 ]] || [[ "$1" == "--"* ]]; then
+   exec java $JAVA_OPTS -jar /usr/share/jenkins/jenkins.war $JENKINS_OPTS "$@"
+fi
+
+# As argument is not jenkins, assume user want to run his own process, for sample a `bash` shell to explore this image
+exec "$@"
+
diff --git a/1.554.10.1/plugins.sh b/1.554.10.1/plugins.sh
new file mode 100755
index 0000000..e0df32b
--- /dev/null
+++ b/1.554.10.1/plugins.sh
@@ -0,0 +1,17 @@
+#! /bin/bash
+
+# Parse a support-core plugin -style txt file as specification for jenkins plugins to be installed
+# in the reference directory, so user can define a derived Docker image with just :
+# 
+# FROM jenkins
+# COPY plugins.txt /plugins.txt
+# RUN /usr/share/jenkins/plugins.sh /plugins.txt
+# 
+
+REF=/usr/share/jenkins/ref/plugins
+mkdir -p $REF
+
+while read spec; do
+    plugin=(${spec//:/ }); 
+    curl -L ${JENKINS_UC}/download/plugins/${plugin[0]}/${plugin[1]}/${plugin[0]}.hpi -o $REF/${plugin[0]}.hpi;
+done  < $1
diff --git a/1.554.11.1/Dockerfile b/1.554.11.1/Dockerfile
new file mode 100644
index 0000000..d995a86
--- /dev/null
+++ b/1.554.11.1/Dockerfile
@@ -0,0 +1,45 @@
+FROM java:openjdk-7u65-jdk
+
+RUN apt-get update && apt-get install -y wget git curl zip && rm -rf /var/lib/apt/lists/*
+
+ENV JENKINS_HOME /var/jenkins_home
+
+# Jenkins is ran with user `jenkins`, uid = 1000
+# If you bind mount a volume from host/vloume from a data container, 
+# ensure you use same uid
+RUN useradd -d "$JENKINS_HOME" -u 1000 -m -s /bin/bash jenkins
+
+# Jenkins home directoy is a volume, so configuration and build history 
+# can be persisted and survive image upgrades
+VOLUME /var/jenkins_home
+
+# `/usr/share/jenkins/ref/` contains all reference configuration we want 
+# to set on a fresh new installation. Use it to bundle additional plugins 
+# or config file with your custom jenkins Docker image.
+RUN mkdir -p /usr/share/jenkins/ref/init.groovy.d
+
+
+COPY init.groovy /usr/share/jenkins/ref/init.groovy.d/tcp-slave-angent-port.groovy
+
+ENV JENKINS_VERSION 1.554.11.1
+
+# could use ADD but this one does not check Last-Modified header 
+# see https://github.com/docker/docker/issues/8331
+RUN curl -L http://nectar-downloads.cloudbees.com/jenkins-enterprise/1.554/war/1.554.11.1/jenkins.war -o /usr/share/jenkins/jenkins.war
+
+ENV JENKINS_UC https://updates.jenkins-ci.org
+RUN chown -R jenkins "$JENKINS_HOME" /usr/share/jenkins/ref
+
+# for main web interface:
+EXPOSE 8080
+
+# will be used by attached slave agents:
+EXPOSE 50000
+
+USER jenkins
+
+COPY jenkins.sh /usr/local/bin/jenkins.sh
+ENTRYPOINT ["/usr/local/bin/jenkins.sh"]
+
+# from a derived Dockerfile, can use `RUN plugin.sh active.txt` to setup /usr/share/jenkins/ref/plugins from a support bundle
+COPY plugins.sh /usr/local/bin/plugins.sh
diff --git a/1.554.11.1/init.groovy b/1.554.11.1/init.groovy
new file mode 100644
index 0000000..83c3a3d
--- /dev/null
+++ b/1.554.11.1/init.groovy
@@ -0,0 +1,9 @@
+import hudson.model.*;
+import jenkins.model.*;
+
+
+Thread.start {
+      sleep 10000
+      println "--> setting agent port for jnlp"
+      Jenkins.instance.setSlaveAgentPort(50000)
+}
diff --git a/1.554.11.1/jenkins.sh b/1.554.11.1/jenkins.sh
new file mode 100755
index 0000000..1bd0f85
--- /dev/null
+++ b/1.554.11.1/jenkins.sh
@@ -0,0 +1,30 @@
+#! /bin/bash
+
+# Copy files from /usr/share/jenkins/ref into /var/jenkins_home
+# So the initial JENKINS-HOME is set with expected content. 
+# Don't override, as this is just a reference setup, and use from UI 
+# can then change this, upgrade plugins, etc.
+copy_reference_file() {
+	f=${1%/} 
+	echo "$f"
+    rel=${f:23}
+    dir=$(dirname ${f})
+    echo " $f -> $rel"    
+	if [[ ! -e /var/jenkins_home/${rel} ]] 
+	then
+		echo "copy $rel to JENKINS_HOME"
+		mkdir -p /var/jenkins_home/${dir:23}
+		cp -r /usr/share/jenkins/ref/${rel} /var/jenkins_home/${rel}; 
+	fi; 
+}
+export -f copy_reference_file
+find /usr/share/jenkins/ref/ -type f -exec bash -c 'copy_reference_file {}' \;
+
+# if `docker run` first argument start with `--` the user is passing jenkins launcher arguments
+if [[ $# -lt 1 ]] || [[ "$1" == "--"* ]]; then
+   exec java $JAVA_OPTS -jar /usr/share/jenkins/jenkins.war $JENKINS_OPTS "$@"
+fi
+
+# As argument is not jenkins, assume user want to run his own process, for sample a `bash` shell to explore this image
+exec "$@"
+
diff --git a/1.554.11.1/plugins.sh b/1.554.11.1/plugins.sh
new file mode 100755
index 0000000..e0df32b
--- /dev/null
+++ b/1.554.11.1/plugins.sh
@@ -0,0 +1,17 @@
+#! /bin/bash
+
+# Parse a support-core plugin -style txt file as specification for jenkins plugins to be installed
+# in the reference directory, so user can define a derived Docker image with just :
+# 
+# FROM jenkins
+# COPY plugins.txt /plugins.txt
+# RUN /usr/share/jenkins/plugins.sh /plugins.txt
+# 
+
+REF=/usr/share/jenkins/ref/plugins
+mkdir -p $REF
+
+while read spec; do
+    plugin=(${spec//:/ }); 
+    curl -L ${JENKINS_UC}/download/plugins/${plugin[0]}/${plugin[1]}/${plugin[0]}.hpi -o $REF/${plugin[0]}.hpi;
+done  < $1
diff --git a/1.554.2.1/Dockerfile b/1.554.2.1/Dockerfile
new file mode 100644
index 0000000..a804ea1
--- /dev/null
+++ b/1.554.2.1/Dockerfile
@@ -0,0 +1,45 @@
+FROM java:openjdk-7u65-jdk
+
+RUN apt-get update && apt-get install -y wget git curl zip && rm -rf /var/lib/apt/lists/*
+
+ENV JENKINS_HOME /var/jenkins_home
+
+# Jenkins is ran with user `jenkins`, uid = 1000
+# If you bind mount a volume from host/vloume from a data container, 
+# ensure you use same uid
+RUN useradd -d "$JENKINS_HOME" -u 1000 -m -s /bin/bash jenkins
+
+# Jenkins home directoy is a volume, so configuration and build history 
+# can be persisted and survive image upgrades
+VOLUME /var/jenkins_home
+
+# `/usr/share/jenkins/ref/` contains all reference configuration we want 
+# to set on a fresh new installation. Use it to bundle additional plugins 
+# or config file with your custom jenkins Docker image.
+RUN mkdir -p /usr/share/jenkins/ref/init.groovy.d
+
+
+COPY init.groovy /usr/share/jenkins/ref/init.groovy.d/tcp-slave-angent-port.groovy
+
+ENV JENKINS_VERSION 1.554.2.1
+
+# could use ADD but this one does not check Last-Modified header 
+# see https://github.com/docker/docker/issues/8331
+RUN curl -L http://nectar-downloads.cloudbees.com/jenkins-enterprise/1.554/war/1.554.2.1/jenkins.war -o /usr/share/jenkins/jenkins.war
+
+ENV JENKINS_UC https://updates.jenkins-ci.org
+RUN chown -R jenkins "$JENKINS_HOME" /usr/share/jenkins/ref
+
+# for main web interface:
+EXPOSE 8080
+
+# will be used by attached slave agents:
+EXPOSE 50000
+
+USER jenkins
+
+COPY jenkins.sh /usr/local/bin/jenkins.sh
+ENTRYPOINT ["/usr/local/bin/jenkins.sh"]
+
+# from a derived Dockerfile, can use `RUN plugin.sh active.txt` to setup /usr/share/jenkins/ref/plugins from a support bundle
+COPY plugins.sh /usr/local/bin/plugins.sh
diff --git a/1.554.2.1/init.groovy b/1.554.2.1/init.groovy
new file mode 100644
index 0000000..83c3a3d
--- /dev/null
+++ b/1.554.2.1/init.groovy
@@ -0,0 +1,9 @@
+import hudson.model.*;
+import jenkins.model.*;
+
+
+Thread.start {
+      sleep 10000
+      println "--> setting agent port for jnlp"
+      Jenkins.instance.setSlaveAgentPort(50000)
+}
diff --git a/1.554.2.1/jenkins.sh b/1.554.2.1/jenkins.sh
new file mode 100755
index 0000000..1bd0f85
--- /dev/null
+++ b/1.554.2.1/jenkins.sh
@@ -0,0 +1,30 @@
+#! /bin/bash
+
+# Copy files from /usr/share/jenkins/ref into /var/jenkins_home
+# So the initial JENKINS-HOME is set with expected content. 
+# Don't override, as this is just a reference setup, and use from UI 
+# can then change this, upgrade plugins, etc.
+copy_reference_file() {
+	f=${1%/} 
+	echo "$f"
+    rel=${f:23}
+    dir=$(dirname ${f})
+    echo " $f -> $rel"    
+	if [[ ! -e /var/jenkins_home/${rel} ]] 
+	then
+		echo "copy $rel to JENKINS_HOME"
+		mkdir -p /var/jenkins_home/${dir:23}
+		cp -r /usr/share/jenkins/ref/${rel} /var/jenkins_home/${rel}; 
+	fi; 
+}
+export -f copy_reference_file
+find /usr/share/jenkins/ref/ -type f -exec bash -c 'copy_reference_file {}' \;
+
+# if `docker run` first argument start with `--` the user is passing jenkins launcher arguments
+if [[ $# -lt 1 ]] || [[ "$1" == "--"* ]]; then
+   exec java $JAVA_OPTS -jar /usr/share/jenkins/jenkins.war $JENKINS_OPTS "$@"
+fi
+
+# As argument is not jenkins, assume user want to run his own process, for sample a `bash` shell to explore this image
+exec "$@"
+
diff --git a/1.554.2.1/plugins.sh b/1.554.2.1/plugins.sh
new file mode 100755
index 0000000..e0df32b
--- /dev/null
+++ b/1.554.2.1/plugins.sh
@@ -0,0 +1,17 @@
+#! /bin/bash
+
+# Parse a support-core plugin -style txt file as specification for jenkins plugins to be installed
+# in the reference directory, so user can define a derived Docker image with just :
+# 
+# FROM jenkins
+# COPY plugins.txt /plugins.txt
+# RUN /usr/share/jenkins/plugins.sh /plugins.txt
+# 
+
+REF=/usr/share/jenkins/ref/plugins
+mkdir -p $REF
+
+while read spec; do
+    plugin=(${spec//:/ }); 
+    curl -L ${JENKINS_UC}/download/plugins/${plugin[0]}/${plugin[1]}/${plugin[0]}.hpi -o $REF/${plugin[0]}.hpi;
+done  < $1
diff --git a/1.554.2.2/Dockerfile b/1.554.2.2/Dockerfile
new file mode 100644
index 0000000..4550e87
--- /dev/null
+++ b/1.554.2.2/Dockerfile
@@ -0,0 +1,45 @@
+FROM java:openjdk-7u65-jdk
+
+RUN apt-get update && apt-get install -y wget git curl zip && rm -rf /var/lib/apt/lists/*
+
+ENV JENKINS_HOME /var/jenkins_home
+
+# Jenkins is ran with user `jenkins`, uid = 1000
+# If you bind mount a volume from host/vloume from a data container, 
+# ensure you use same uid
+RUN useradd -d "$JENKINS_HOME" -u 1000 -m -s /bin/bash jenkins
+
+# Jenkins home directoy is a volume, so configuration and build history 
+# can be persisted and survive image upgrades
+VOLUME /var/jenkins_home
+
+# `/usr/share/jenkins/ref/` contains all reference configuration we want 
+# to set on a fresh new installation. Use it to bundle additional plugins 
+# or config file with your custom jenkins Docker image.
+RUN mkdir -p /usr/share/jenkins/ref/init.groovy.d
+
+
+COPY init.groovy /usr/share/jenkins/ref/init.groovy.d/tcp-slave-angent-port.groovy
+
+ENV JENKINS_VERSION 1.554.2.2
+
+# could use ADD but this one does not check Last-Modified header 
+# see https://github.com/docker/docker/issues/8331
+RUN curl -L http://nectar-downloads.cloudbees.com/jenkins-enterprise/1.554/war/1.554.2.2/jenkins.war -o /usr/share/jenkins/jenkins.war
+
+ENV JENKINS_UC https://updates.jenkins-ci.org
+RUN chown -R jenkins "$JENKINS_HOME" /usr/share/jenkins/ref
+
+# for main web interface:
+EXPOSE 8080
+
+# will be used by attached slave agents:
+EXPOSE 50000
+
+USER jenkins
+
+COPY jenkins.sh /usr/local/bin/jenkins.sh
+ENTRYPOINT ["/usr/local/bin/jenkins.sh"]
+
+# from a derived Dockerfile, can use `RUN plugin.sh active.txt` to setup /usr/share/jenkins/ref/plugins from a support bundle
+COPY plugins.sh /usr/local/bin/plugins.sh
diff --git a/1.554.2.2/init.groovy b/1.554.2.2/init.groovy
new file mode 100644
index 0000000..83c3a3d
--- /dev/null
+++ b/1.554.2.2/init.groovy
@@ -0,0 +1,9 @@
+import hudson.model.*;
+import jenkins.model.*;
+
+
+Thread.start {
+      sleep 10000
+      println "--> setting agent port for jnlp"
+      Jenkins.instance.setSlaveAgentPort(50000)
+}
diff --git a/1.554.2.2/jenkins.sh b/1.554.2.2/jenkins.sh
new file mode 100755
index 0000000..1bd0f85
--- /dev/null
+++ b/1.554.2.2/jenkins.sh
@@ -0,0 +1,30 @@
+#! /bin/bash
+
+# Copy files from /usr/share/jenkins/ref into /var/jenkins_home
+# So the initial JENKINS-HOME is set with expected content. 
+# Don't override, as this is just a reference setup, and use from UI 
+# can then change this, upgrade plugins, etc.
+copy_reference_file() {
+	f=${1%/} 
+	echo "$f"
+    rel=${f:23}
+    dir=$(dirname ${f})
+    echo " $f -> $rel"    
+	if [[ ! -e /var/jenkins_home/${rel} ]] 
+	then
+		echo "copy $rel to JENKINS_HOME"
+		mkdir -p /var/jenkins_home/${dir:23}
+		cp -r /usr/share/jenkins/ref/${rel} /var/jenkins_home/${rel}; 
+	fi; 
+}
+export -f copy_reference_file
+find /usr/share/jenkins/ref/ -type f -exec bash -c 'copy_reference_file {}' \;
+
+# if `docker run` first argument start with `--` the user is passing jenkins launcher arguments
+if [[ $# -lt 1 ]] || [[ "$1" == "--"* ]]; then
+   exec java $JAVA_OPTS -jar /usr/share/jenkins/jenkins.war $JENKINS_OPTS "$@"
+fi
+
+# As argument is not jenkins, assume user want to run his own process, for sample a `bash` shell to explore this image
+exec "$@"
+
diff --git a/1.554.2.2/plugins.sh b/1.554.2.2/plugins.sh
new file mode 100755
index 0000000..e0df32b
--- /dev/null
+++ b/1.554.2.2/plugins.sh
@@ -0,0 +1,17 @@
+#! /bin/bash
+
+# Parse a support-core plugin -style txt file as specification for jenkins plugins to be installed
+# in the reference directory, so user can define a derived Docker image with just :
+# 
+# FROM jenkins
+# COPY plugins.txt /plugins.txt
+# RUN /usr/share/jenkins/plugins.sh /plugins.txt
+# 
+
+REF=/usr/share/jenkins/ref/plugins
+mkdir -p $REF
+
+while read spec; do
+    plugin=(${spec//:/ }); 
+    curl -L ${JENKINS_UC}/download/plugins/${plugin[0]}/${plugin[1]}/${plugin[0]}.hpi -o $REF/${plugin[0]}.hpi;
+done  < $1
diff --git a/1.565.11.1/Dockerfile b/1.565.11.1/Dockerfile
new file mode 100644
index 0000000..1cbc2d4
--- /dev/null
+++ b/1.565.11.1/Dockerfile
@@ -0,0 +1,45 @@
+FROM java:openjdk-7u65-jdk
+
+RUN apt-get update && apt-get install -y wget git curl zip && rm -rf /var/lib/apt/lists/*
+
+ENV JENKINS_HOME /var/jenkins_home
+
+# Jenkins is ran with user `jenkins`, uid = 1000
+# If you bind mount a volume from host/vloume from a data container, 
+# ensure you use same uid
+RUN useradd -d "$JENKINS_HOME" -u 1000 -m -s /bin/bash jenkins
+
+# Jenkins home directoy is a volume, so configuration and build history 
+# can be persisted and survive image upgrades
+VOLUME /var/jenkins_home
+
+# `/usr/share/jenkins/ref/` contains all reference configuration we want 
+# to set on a fresh new installation. Use it to bundle additional plugins 
+# or config file with your custom jenkins Docker image.
+RUN mkdir -p /usr/share/jenkins/ref/init.groovy.d
+
+
+COPY init.groovy /usr/share/jenkins/ref/init.groovy.d/tcp-slave-angent-port.groovy
+
+ENV JENKINS_VERSION 1.565.11.1
+
+# could use ADD but this one does not check Last-Modified header 
+# see https://github.com/docker/docker/issues/8331
+RUN curl -L http://nectar-downloads.cloudbees.com/jenkins-enterprise/1.565/war/1.565.11.1/jenkins.war -o /usr/share/jenkins/jenkins.war
+
+ENV JENKINS_UC https://updates.jenkins-ci.org
+RUN chown -R jenkins "$JENKINS_HOME" /usr/share/jenkins/ref
+
+# for main web interface:
+EXPOSE 8080
+
+# will be used by attached slave agents:
+EXPOSE 50000
+
+USER jenkins
+
+COPY jenkins.sh /usr/local/bin/jenkins.sh
+ENTRYPOINT ["/usr/local/bin/jenkins.sh"]
+
+# from a derived Dockerfile, can use `RUN plugin.sh active.txt` to setup /usr/share/jenkins/ref/plugins from a support bundle
+COPY plugins.sh /usr/local/bin/plugins.sh
diff --git a/1.565.11.1/init.groovy b/1.565.11.1/init.groovy
new file mode 100644
index 0000000..83c3a3d
--- /dev/null
+++ b/1.565.11.1/init.groovy
@@ -0,0 +1,9 @@
+import hudson.model.*;
+import jenkins.model.*;
+
+
+Thread.start {
+      sleep 10000
+      println "--> setting agent port for jnlp"
+      Jenkins.instance.setSlaveAgentPort(50000)
+}
diff --git a/1.565.11.1/jenkins.sh b/1.565.11.1/jenkins.sh
new file mode 100755
index 0000000..1bd0f85
--- /dev/null
+++ b/1.565.11.1/jenkins.sh
@@ -0,0 +1,30 @@
+#! /bin/bash
+
+# Copy files from /usr/share/jenkins/ref into /var/jenkins_home
+# So the initial JENKINS-HOME is set with expected content. 
+# Don't override, as this is just a reference setup, and use from UI 
+# can then change this, upgrade plugins, etc.
+copy_reference_file() {
+	f=${1%/} 
+	echo "$f"
+    rel=${f:23}
+    dir=$(dirname ${f})
+    echo " $f -> $rel"    
+	if [[ ! -e /var/jenkins_home/${rel} ]] 
+	then
+		echo "copy $rel to JENKINS_HOME"
+		mkdir -p /var/jenkins_home/${dir:23}
+		cp -r /usr/share/jenkins/ref/${rel} /var/jenkins_home/${rel}; 
+	fi; 
+}
+export -f copy_reference_file
+find /usr/share/jenkins/ref/ -type f -exec bash -c 'copy_reference_file {}' \;
+
+# if `docker run` first argument start with `--` the user is passing jenkins launcher arguments
+if [[ $# -lt 1 ]] || [[ "$1" == "--"* ]]; then
+   exec java $JAVA_OPTS -jar /usr/share/jenkins/jenkins.war $JENKINS_OPTS "$@"
+fi
+
+# As argument is not jenkins, assume user want to run his own process, for sample a `bash` shell to explore this image
+exec "$@"
+
diff --git a/1.565.11.1/plugins.sh b/1.565.11.1/plugins.sh
new file mode 100755
index 0000000..e0df32b
--- /dev/null
+++ b/1.565.11.1/plugins.sh
@@ -0,0 +1,17 @@
+#! /bin/bash
+
+# Parse a support-core plugin -style txt file as specification for jenkins plugins to be installed
+# in the reference directory, so user can define a derived Docker image with just :
+# 
+# FROM jenkins
+# COPY plugins.txt /plugins.txt
+# RUN /usr/share/jenkins/plugins.sh /plugins.txt
+# 
+
+REF=/usr/share/jenkins/ref/plugins
+mkdir -p $REF
+
+while read spec; do
+    plugin=(${spec//:/ }); 
+    curl -L ${JENKINS_UC}/download/plugins/${plugin[0]}/${plugin[1]}/${plugin[0]}.hpi -o $REF/${plugin[0]}.hpi;
+done  < $1
diff --git a/1.565.3.1/Dockerfile b/1.565.3.1/Dockerfile
new file mode 100644
index 0000000..b6e97b8
--- /dev/null
+++ b/1.565.3.1/Dockerfile
@@ -0,0 +1,45 @@
+FROM java:openjdk-7u65-jdk
+
+RUN apt-get update && apt-get install -y wget git curl zip && rm -rf /var/lib/apt/lists/*
+
+ENV JENKINS_HOME /var/jenkins_home
+
+# Jenkins is ran with user `jenkins`, uid = 1000
+# If you bind mount a volume from host/vloume from a data container, 
+# ensure you use same uid
+RUN useradd -d "$JENKINS_HOME" -u 1000 -m -s /bin/bash jenkins
+
+# Jenkins home directoy is a volume, so configuration and build history 
+# can be persisted and survive image upgrades
+VOLUME /var/jenkins_home
+
+# `/usr/share/jenkins/ref/` contains all reference configuration we want 
+# to set on a fresh new installation. Use it to bundle additional plugins 
+# or config file with your custom jenkins Docker image.
+RUN mkdir -p /usr/share/jenkins/ref/init.groovy.d
+
+
+COPY init.groovy /usr/share/jenkins/ref/init.groovy.d/tcp-slave-angent-port.groovy
+
+ENV JENKINS_VERSION 1.565.3.1
+
+# could use ADD but this one does not check Last-Modified header 
+# see https://github.com/docker/docker/issues/8331
+RUN curl -L http://nectar-downloads.cloudbees.com/jenkins-enterprise/1.565/war/1.565.3.1/jenkins.war -o /usr/share/jenkins/jenkins.war
+
+ENV JENKINS_UC https://updates.jenkins-ci.org
+RUN chown -R jenkins "$JENKINS_HOME" /usr/share/jenkins/ref
+
+# for main web interface:
+EXPOSE 8080
+
+# will be used by attached slave agents:
+EXPOSE 50000
+
+USER jenkins
+
+COPY jenkins.sh /usr/local/bin/jenkins.sh
+ENTRYPOINT ["/usr/local/bin/jenkins.sh"]
+
+# from a derived Dockerfile, can use `RUN plugin.sh active.txt` to setup /usr/share/jenkins/ref/plugins from a support bundle
+COPY plugins.sh /usr/local/bin/plugins.sh
diff --git a/1.565.3.1/init.groovy b/1.565.3.1/init.groovy
new file mode 100644
index 0000000..83c3a3d
--- /dev/null
+++ b/1.565.3.1/init.groovy
@@ -0,0 +1,9 @@
+import hudson.model.*;
+import jenkins.model.*;
+
+
+Thread.start {
+      sleep 10000
+      println "--> setting agent port for jnlp"
+      Jenkins.instance.setSlaveAgentPort(50000)
+}
diff --git a/1.565.3.1/jenkins.sh b/1.565.3.1/jenkins.sh
new file mode 100755
index 0000000..1bd0f85
--- /dev/null
+++ b/1.565.3.1/jenkins.sh
@@ -0,0 +1,30 @@
+#! /bin/bash
+
+# Copy files from /usr/share/jenkins/ref into /var/jenkins_home
+# So the initial JENKINS-HOME is set with expected content. 
+# Don't override, as this is just a reference setup, and use from UI 
+# can then change this, upgrade plugins, etc.
+copy_reference_file() {
+	f=${1%/} 
+	echo "$f"
+    rel=${f:23}
+    dir=$(dirname ${f})
+    echo " $f -> $rel"    
+	if [[ ! -e /var/jenkins_home/${rel} ]] 
+	then
+		echo "copy $rel to JENKINS_HOME"
+		mkdir -p /var/jenkins_home/${dir:23}
+		cp -r /usr/share/jenkins/ref/${rel} /var/jenkins_home/${rel}; 
+	fi; 
+}
+export -f copy_reference_file
+find /usr/share/jenkins/ref/ -type f -exec bash -c 'copy_reference_file {}' \;
+
+# if `docker run` first argument start with `--` the user is passing jenkins launcher arguments
+if [[ $# -lt 1 ]] || [[ "$1" == "--"* ]]; then
+   exec java $JAVA_OPTS -jar /usr/share/jenkins/jenkins.war $JENKINS_OPTS "$@"
+fi
+
+# As argument is not jenkins, assume user want to run his own process, for sample a `bash` shell to explore this image
+exec "$@"
+
diff --git a/1.565.3.1/plugins.sh b/1.565.3.1/plugins.sh
new file mode 100755
index 0000000..e0df32b
--- /dev/null
+++ b/1.565.3.1/plugins.sh
@@ -0,0 +1,17 @@
+#! /bin/bash
+
+# Parse a support-core plugin -style txt file as specification for jenkins plugins to be installed
+# in the reference directory, so user can define a derived Docker image with just :
+# 
+# FROM jenkins
+# COPY plugins.txt /plugins.txt
+# RUN /usr/share/jenkins/plugins.sh /plugins.txt
+# 
+
+REF=/usr/share/jenkins/ref/plugins
+mkdir -p $REF
+
+while read spec; do
+    plugin=(${spec//:/ }); 
+    curl -L ${JENKINS_UC}/download/plugins/${plugin[0]}/${plugin[1]}/${plugin[0]}.hpi -o $REF/${plugin[0]}.hpi;
+done  < $1
diff --git a/1.580.1.1/Dockerfile b/1.580.1.1/Dockerfile
new file mode 100644
index 0000000..59e908b
--- /dev/null
+++ b/1.580.1.1/Dockerfile
@@ -0,0 +1,45 @@
+FROM java:openjdk-7u65-jdk
+
+RUN apt-get update && apt-get install -y wget git curl zip && rm -rf /var/lib/apt/lists/*
+
+ENV JENKINS_HOME /var/jenkins_home
+
+# Jenkins is ran with user `jenkins`, uid = 1000
+# If you bind mount a volume from host/vloume from a data container, 
+# ensure you use same uid
+RUN useradd -d "$JENKINS_HOME" -u 1000 -m -s /bin/bash jenkins
+
+# Jenkins home directoy is a volume, so configuration and build history 
+# can be persisted and survive image upgrades
+VOLUME /var/jenkins_home
+
+# `/usr/share/jenkins/ref/` contains all reference configuration we want 
+# to set on a fresh new installation. Use it to bundle additional plugins 
+# or config file with your custom jenkins Docker image.
+RUN mkdir -p /usr/share/jenkins/ref/init.groovy.d
+
+
+COPY init.groovy /usr/share/jenkins/ref/init.groovy.d/tcp-slave-angent-port.groovy
+
+ENV JENKINS_VERSION 1.580.1.1
+
+# could use ADD but this one does not check Last-Modified header 
+# see https://github.com/docker/docker/issues/8331
+RUN curl -L http://nectar-downloads.cloudbees.com/jenkins-enterprise/1.580/war/1.580.1.1/jenkins.war -o /usr/share/jenkins/jenkins.war
+
+ENV JENKINS_UC https://updates.jenkins-ci.org
+RUN chown -R jenkins "$JENKINS_HOME" /usr/share/jenkins/ref
+
+# for main web interface:
+EXPOSE 8080
+
+# will be used by attached slave agents:
+EXPOSE 50000
+
+USER jenkins
+
+COPY jenkins.sh /usr/local/bin/jenkins.sh
+ENTRYPOINT ["/usr/local/bin/jenkins.sh"]
+
+# from a derived Dockerfile, can use `RUN plugin.sh active.txt` to setup /usr/share/jenkins/ref/plugins from a support bundle
+COPY plugins.sh /usr/local/bin/plugins.sh
diff --git a/1.580.1.1/init.groovy b/1.580.1.1/init.groovy
new file mode 100644
index 0000000..83c3a3d
--- /dev/null
+++ b/1.580.1.1/init.groovy
@@ -0,0 +1,9 @@
+import hudson.model.*;
+import jenkins.model.*;
+
+
+Thread.start {
+      sleep 10000
+      println "--> setting agent port for jnlp"
+      Jenkins.instance.setSlaveAgentPort(50000)
+}
diff --git a/1.580.1.1/jenkins.sh b/1.580.1.1/jenkins.sh
new file mode 100755
index 0000000..1bd0f85
--- /dev/null
+++ b/1.580.1.1/jenkins.sh
@@ -0,0 +1,30 @@
+#! /bin/bash
+
+# Copy files from /usr/share/jenkins/ref into /var/jenkins_home
+# So the initial JENKINS-HOME is set with expected content. 
+# Don't override, as this is just a reference setup, and use from UI 
+# can then change this, upgrade plugins, etc.
+copy_reference_file() {
+	f=${1%/} 
+	echo "$f"
+    rel=${f:23}
+    dir=$(dirname ${f})
+    echo " $f -> $rel"    
+	if [[ ! -e /var/jenkins_home/${rel} ]] 
+	then
+		echo "copy $rel to JENKINS_HOME"
+		mkdir -p /var/jenkins_home/${dir:23}
+		cp -r /usr/share/jenkins/ref/${rel} /var/jenkins_home/${rel}; 
+	fi; 
+}
+export -f copy_reference_file
+find /usr/share/jenkins/ref/ -type f -exec bash -c 'copy_reference_file {}' \;
+
+# if `docker run` first argument start with `--` the user is passing jenkins launcher arguments
+if [[ $# -lt 1 ]] || [[ "$1" == "--"* ]]; then
+   exec java $JAVA_OPTS -jar /usr/share/jenkins/jenkins.war $JENKINS_OPTS "$@"
+fi
+
+# As argument is not jenkins, assume user want to run his own process, for sample a `bash` shell to explore this image
+exec "$@"
+
diff --git a/1.580.1.1/plugins.sh b/1.580.1.1/plugins.sh
new file mode 100755
index 0000000..e0df32b
--- /dev/null
+++ b/1.580.1.1/plugins.sh
@@ -0,0 +1,17 @@
+#! /bin/bash
+
+# Parse a support-core plugin -style txt file as specification for jenkins plugins to be installed
+# in the reference directory, so user can define a derived Docker image with just :
+# 
+# FROM jenkins
+# COPY plugins.txt /plugins.txt
+# RUN /usr/share/jenkins/plugins.sh /plugins.txt
+# 
+
+REF=/usr/share/jenkins/ref/plugins
+mkdir -p $REF
+
+while read spec; do
+    plugin=(${spec//:/ }); 
+    curl -L ${JENKINS_UC}/download/plugins/${plugin[0]}/${plugin[1]}/${plugin[0]}.hpi -o $REF/${plugin[0]}.hpi;
+done  < $1
diff --git a/update.sh b/update.sh
index 3e12e06..674de21 100755
--- a/update.sh
+++ b/update.sh
@@ -12,6 +12,7 @@
 	cp Dockerfile.template jenkins.sh plugins.sh init.groovy "$version/"
 	mv "$version/Dockerfile.template" "$version/Dockerfile"
     case $version in
+		1\.*\.*\.*) download="http:\/\/nectar-downloads.cloudbees.com\/jenkins-enterprise\/${version::5}\/war\/$version\/jenkins.war" ;;
     	1\.*\.*) download="http:\/\/mirrors.jenkins-ci.org\/war-stable\/$version\/jenkins.war" ;;
     	*) download="http:\/\/mirrors.jenkins-ci.org\/war\/$version\/jenkins.war" ;;
 	esac