General revamp/update of Jenkins versions

Change-Id: Ic2a3ea325591a5e322af29a6a2611a5d94032604
diff --git a/jenkins-docker/master/Dockerfile b/jenkins-docker/master/Dockerfile
index 1579d6e..fcfaa80 100644
--- a/jenkins-docker/master/Dockerfile
+++ b/jenkins-docker/master/Dockerfile
@@ -1,4 +1,4 @@
-FROM jenkins:2.3
+FROM jenkins:latest
 
 USER root
 
@@ -23,14 +23,15 @@
     autoconf \
     automake \
     xsltproc \
-    apt-transport-https \
-    && rm -rf /var/lib/apt/lists/*
+    apt-transport-https && \
+    rm -rf /var/lib/apt/lists/* && \
+    \
+    mkdir -p /opt/ && \
+    git clone https://git.openstack.org/openstack-infra/jenkins-job-builder /opt/jenkins_job_builder && \
+    cd /opt/jenkins_job_builder && git checkout 1.6.1 && \
+    pip install /opt/jenkins_job_builder && \
+    mkdir -p /etc/jenkins_jobs && chown jenkins: /etc/jenkins_jobs
 
-RUN mkdir -p /opt/ && git clone https://git.openstack.org/openstack-infra/jenkins-job-builder /opt/jenkins_job_builder && cd /opt/jenkins_job_builder && git checkout 1.6.1
-
-RUN pip install /opt/jenkins_job_builder
-
-RUN mkdir -p /etc/jenkins_jobs && chown jenkins: /etc/jenkins_jobs
 COPY jenkins_jobs.ini /etc/jenkins_jobs/jenkins_jobs.ini
 
 ENV JAVA_OPTS -Djenkins.install.runSetupWizard=false -Dhudson.model.ParametersAction.keepUndefinedParameters=true
@@ -40,38 +41,44 @@
 ENV OAUTH_SECRET secret
 ENV JENKINS_API_USER user
 ENV JENKINS_API_PASSWORD pass
+ENV BINTRAY_URL https://dl.bintray.com/lucamilanesio
 
 COPY edit-config.xslt $JENKINS_REF
 COPY config.xml $JENKINS_REF
 COPY jenkins.plugins.logstash.LogstashInstallation.xml $JENKINS_REF
 
-RUN mkdir $JENKINS_REF/.ssh
-RUN chown -R jenkins:jenkins $JENKINS_REF/.ssh
-RUN chmod -R 700 $JENKINS_REF/.ssh
+RUN mkdir $JENKINS_REF/.ssh && \
+    chown -R jenkins:jenkins $JENKINS_REF/.ssh && \
+    chmod -R 700 $JENKINS_REF/.ssh
 
 COPY plugins.txt $JENKINS_REF
-RUN plugins.sh $JENKINS_REF/plugins.txt
+RUN cat $JENKINS_REF/plugins.txt | xargs install-plugins.sh
+# Snapshot build of the Jenkins Docker Plugin (includes unix:/// sockets fix)
+ADD $BINTRAY_URL/jenkins-snapshots/com/nirima/docker-plugin/0.16.1-54-gc5c5be1/docker-plugin-0.16.1-54-gc5c5be1.hpi $JENKINS_REF/plugins/docker-plugin.jpi
+RUN chown -R jenkins:jenkins $JENKINS_REF
+
+RUN mkdir -p $JENKINS_REF/jobs/gerrit-ci-scripts/ && \
+    mkdir -p $JENKINS_REF/jobs/gerrit-ci-scripts-manual/
+
 COPY number-executors.groovy $JENKINS_REF/init.groovy.d/
-RUN mkdir -p $JENKINS_REF/jobs/gerrit-ci-scripts/
 COPY gerrit-ci-scripts.xml $JENKINS_REF/jobs/gerrit-ci-scripts/config.xml
-RUN mkdir -p $JENKINS_REF/jobs/gerrit-ci-scripts-manual/
 COPY gerrit-ci-scripts-manual.xml $JENKINS_REF/jobs/gerrit-ci-scripts-manual/config.xml
 
-RUN echo "2.0" > $JENKINS_REF/jenkins.install.UpgradeWizard.state
-RUN echo "2.0" > $JENKINS_REF/upgraded
-RUN echo "2.0" > $JENKINS_REF/.last_exec_version
+RUN echo "2.0" > $JENKINS_REF/jenkins.install.UpgradeWizard.state && \
+    echo "2.0" > $JENKINS_REF/upgraded && \
+    echo "2.0" > $JENKINS_REF/.last_exec_version
 
 COPY gitconfig $JENKINS_REF/.gitconfig
 
-RUN apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
-RUN echo "deb https://apt.dockerproject.org/repo debian-jessie main" > /etc/apt/sources.list.d/docker.list
-RUN apt-get update
-RUN apt-cache policy docker-engine
-RUN apt-get install -y docker-engine=1.11.2-0~jessie
+RUN apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D && \
+    echo "deb https://apt.dockerproject.org/repo debian-jessie main" > /etc/apt/sources.list.d/docker.list && \
+    apt-get update && \
+    apt-cache policy docker-engine && \
+    apt-get install -y docker-engine=1.11.2-0~jessie
 
 COPY id_rsa* $JENKINS_REF/.ssh/
-RUN chown jenkins:jenkins $JENKINS_REF/.ssh/id_rsa*
-RUN chmod 600 $JENKINS_REF/.ssh/id_rsa
+RUN chown jenkins:jenkins $JENKINS_REF/.ssh/id_rsa* && \
+    chmod 600 $JENKINS_REF/.ssh/id_rsa
 
 COPY config.sh /usr/local/bin/
 
@@ -89,8 +96,8 @@
     && gosu nobody true
 
 # Set default JDK to 8
-RUN apt-get install -y openjdk-8-jdk
-RUN update-alternatives --set java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
+RUN apt-get install -y openjdk-8-jdk && \
+    update-alternatives --set java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
 
 USER root
 
diff --git a/jenkins-docker/master/Makefile b/jenkins-docker/master/Makefile
index 32eca25..d7b6d3b 100644
--- a/jenkins-docker/master/Makefile
+++ b/jenkins-docker/master/Makefile
@@ -1,12 +1,10 @@
 NO_CACHE=false
-IMAGE=gerrit-ci
+IMAGE=gerritforge/gerrit-ci
 USE_SECURITY=false
 OAUTH_ID=clientid
 OAUTH_SECRET=secret
 JENKINS_API_USER=user
 JENKINS_API_PASSWORD=pass
-DOCKER_PORT=$(shell lsof -i tcp | grep LISTEN | grep docker | cut -d ':' -f 2 \
-              | cut -d ' ' -f 1)
 
 # Targets
 
@@ -17,7 +15,6 @@
           -e OAUTH_SECRET=${OAUTH_SECRET} \
           -e JENKINS_API_USER=${JENKINS_API_USER} \
           -e JENKINS_API_PASSWORD=${JENKINS_API_PASSWORD} \
-          -e DOCKER_HOST="http://127.0.0.1:${DOCKER_PORT}" \
           --net=host ${IMAGE}
 
 id_rsa:
diff --git a/jenkins-docker/master/config.xml b/jenkins-docker/master/config.xml
index 3038146..909295b 100644
--- a/jenkins-docker/master/config.xml
+++ b/jenkins-docker/master/config.xml
@@ -56,7 +56,49 @@
           </retentionStrategy>
           <numExecutors>1</numExecutors>
           <dockerTemplateBase>
-            <image>gerrit-ci-slave-buck</image>
+            <image>gerritforge/gerrit-ci-slave-buck</image>
+            <dockerCommand></dockerCommand>
+            <lxcConfString></lxcConfString>
+            <hostname></hostname>
+            <dnsHosts/>
+            <volumes/>
+            <volumesFrom2/>
+            <environment/>
+            <bindPorts></bindPorts>
+            <bindAllPorts>false</bindAllPorts>
+            <privileged>true</privileged>
+            <tty>false</tty>
+            <extraHosts class="java.util.Collections$UnmodifiableRandomAccessList" resolves-to="java.util.Collections$UnmodifiableList">
+              <c class="list"/>
+              <list reference="../c"/>
+            </extraHosts>
+          </dockerTemplateBase>
+          <removeVolumes>false</removeVolumes>
+          <pullStrategy>PULL_LATEST</pullStrategy>
+        </com.nirima.jenkins.plugins.docker.DockerTemplate>
+        <com.nirima.jenkins.plugins.docker.DockerTemplate>
+          <configVersion>2</configVersion>
+          <labelString>bazel</labelString>
+          <launcher class="com.nirima.jenkins.plugins.docker.launcher.DockerComputerSSHLauncher">
+            <sshConnector plugin="ssh-slaves@1.11">
+              <port>22</port>
+              <jvmOptions></jvmOptions>
+              <javaPath></javaPath>
+              <maxNumRetries>0</maxNumRetries>
+              <retryWaitTime>0</retryWaitTime>
+            </sshConnector>
+          </launcher>
+          <remoteFsMapping></remoteFsMapping>
+          <remoteFs>/home/jenkins</remoteFs>
+          <instanceCap>5</instanceCap>
+          <mode>EXCLUSIVE</mode>
+          <retentionStrategy class="com.nirima.jenkins.plugins.docker.strategy.DockerOnceRetentionStrategy">
+            <idleMinutes>10</idleMinutes>
+            <idleMinutes defined-in="com.nirima.jenkins.plugins.docker.strategy.DockerOnceRetentionStrategy">10</idleMinutes>
+          </retentionStrategy>
+          <numExecutors>1</numExecutors>
+          <dockerTemplateBase>
+            <image>gerritforge/gerrit-ci-slave-bazel</image>
             <dockerCommand></dockerCommand>
             <lxcConfString></lxcConfString>
             <hostname></hostname>
@@ -98,7 +140,7 @@
           </retentionStrategy>
           <numExecutors>1</numExecutors>
           <dockerTemplateBase>
-            <image>gerrit-ci-slave-mvn</image>
+            <image>gerritforge/gerrit-ci-slave-mvn</image>
             <dockerCommand></dockerCommand>
             <lxcConfString>mvn</lxcConfString>
             <hostname></hostname>
@@ -119,7 +161,7 @@
           <pullStrategy>PULL_LATEST</pullStrategy>
         </com.nirima.jenkins.plugins.docker.DockerTemplate>
       </templates>
-      <serverUrl>http://127.0.0.1:2375</serverUrl>
+      <serverUrl>unix:///var/run/docker.sock</serverUrl>
       <connectTimeout>30</connectTimeout>
       <readTimeout>30</readTimeout>
       <credentialsId></credentialsId>
diff --git a/jenkins-docker/master/plugins.txt b/jenkins-docker/master/plugins.txt
index 26ce9c3..cfef388 100644
--- a/jenkins-docker/master/plugins.txt
+++ b/jenkins-docker/master/plugins.txt
@@ -1,58 +1,58 @@
-ace-editor:1.1
-antisamy-markup-formatter:1.3
-branch-api:1.8
-build-flow-plugin:0.19
-build-timeout:1.18
-cloudbees-folder:5.11
-credentials:2.1.10
-docker-plugin:0.16.2
-durable-task:1.10
-embeddable-build-status:1.9
-envinject:1.92.1
-git:3.0.1
-git-client:2.1.0
-github:1.24.0
-github-api:1.80
-github-branch-source:1.10.1
-github-oauth:0.25
-github-organization-folder:1.5
-git-server:1.7
-greenballs:1.15
-groovy-postbuild:2.3.1
-handlebars:1.1.1
-logstash:1.2.0
-icon-shim:2.0.3
-jquery-detached:1.2.1
-junit:1.13
-mailer:1.17
-mask-passwords:2.8
-matrix-auth:1.4
-matrix-project:1.7
-momentjs:1.1.1
-monitoring:1.60.0
-pipeline-build-step:2.0
-pipeline-input-step:2.0
-pipeline-rest-api:1.4
-pipeline-stage-step:2.1
-pipeline-stage-view:1.4
-plain-credentials:1.2
-scm-api:1.2
-script-security:1.19
-ssh-credentials:1.12
-ssh-slaves:1.12
-structs:1.1
-token-macro:1.12.1
-timestamper:1.8.2
-windows-slaves:1.1
-workflow-aggregator:2.1
-workflow-api:2.0
-workflow-basic-steps:2.0
-workflow-cps:2.4
-workflow-cps-global-lib:2.0
-workflow-durable-task-step:2.0
-workflow-job:2.2
-workflow-multibranch:2.4
-workflow-scm-step:2.0
-workflow-step-api:2.1
-workflow-support:2.0
-xvfb:1.1.3
+ace-editor:latest
+antisamy-markup-formatter:latest
+branch-api:latest
+build-flow-plugin:latest
+build-timeout:latest
+cloudbees-folder:latest
+credentials:latest
+docker-plugin:latest
+durable-task:latest
+embeddable-build-status:latest
+envinject:latest
+git:latest
+git-client:latest
+github:latest
+github-api:latest
+github-branch-source:latest
+github-oauth:latest
+github-organization-folder:latest
+git-server:latest
+greenballs:latest
+groovy-postbuild:latest
+handlebars:latest
+logstash:latest
+icon-shim:latest
+jquery-detached:latest
+junit:latest
+mailer:latest
+mask-passwords:latest
+matrix-auth:latest
+matrix-project:latest
+momentjs:latest
+monitoring:latest
+pipeline-build-step:latest
+pipeline-input-step:latest
+pipeline-rest-api:latest
+pipeline-stage-step:latest
+pipeline-stage-view:latest
+plain-credentials:latest
+scm-api:latest
+script-security:latest
+ssh-credentials:latest
+ssh-slaves:latest
+structs:latest
+token-macro:latest
+timestamper:latest
+windows-slaves:latest
+workflow-aggregator:latest
+workflow-api:latest
+workflow-basic-steps:latest
+workflow-cps:latest
+workflow-cps-global-lib:latest
+workflow-durable-task-step:latest
+workflow-job:latest
+workflow-multibranch:latest
+workflow-scm-step:latest
+workflow-step-api:latest
+workflow-support:latest
+xvfb:latest
diff --git a/jenkins-docker/slave-bazel/Dockerfile b/jenkins-docker/slave-bazel/Dockerfile
index 49321e0..ed4dc63 100644
--- a/jenkins-docker/slave-bazel/Dockerfile
+++ b/jenkins-docker/slave-bazel/Dockerfile
@@ -1,4 +1,4 @@
-FROM gerrit-ci-slave-buck
+FROM gerritforge/gerrit-ci-slave-buck
 
 ADD https://storage.googleapis.com/bazel-apt/doc/apt-key.pub.gpg /tmp/bazel.pub.gpg
 RUN echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | tee /etc/apt/sources.list.d/bazel.list && \
diff --git a/jenkins-docker/slave-bazel/Makefile b/jenkins-docker/slave-bazel/Makefile
index 2dd5d8a..f740c74 100644
--- a/jenkins-docker/slave-bazel/Makefile
+++ b/jenkins-docker/slave-bazel/Makefile
@@ -1,5 +1,5 @@
 NO_CACHE=false
-IMAGE=gerrit-ci-slave-bazel
+IMAGE=gerritforge/gerrit-ci-slave-bazel
 
 # Targets
 
diff --git a/jenkins-docker/slave-buck/Dockerfile b/jenkins-docker/slave-buck/Dockerfile
index 30bcf33..3be5203 100644
--- a/jenkins-docker/slave-buck/Dockerfile
+++ b/jenkins-docker/slave-buck/Dockerfile
@@ -1,4 +1,4 @@
-FROM gerrit-ci-slave
+FROM gerritforge/gerrit-ci-slave
 
 # Buck build
 
diff --git a/jenkins-docker/slave-buck/Makefile b/jenkins-docker/slave-buck/Makefile
index f0c9a0b..f6d5071 100644
--- a/jenkins-docker/slave-buck/Makefile
+++ b/jenkins-docker/slave-buck/Makefile
@@ -1,5 +1,5 @@
 NO_CACHE=false
-IMAGE=gerrit-ci-slave-buck
+IMAGE=gerritforge/gerrit-ci-slave-buck
 
 # Targets
 
diff --git a/jenkins-docker/slave-mvn/Dockerfile b/jenkins-docker/slave-mvn/Dockerfile
index a30123c..d40f4da 100644
--- a/jenkins-docker/slave-mvn/Dockerfile
+++ b/jenkins-docker/slave-mvn/Dockerfile
@@ -1,4 +1,4 @@
-FROM gerrit-ci-slave-buck
+FROM gerritforge/gerrit-ci-slave-buck
 
 USER jenkins
 
diff --git a/jenkins-docker/slave-mvn/Makefile b/jenkins-docker/slave-mvn/Makefile
index 89fc91d..7e48a5a 100644
--- a/jenkins-docker/slave-mvn/Makefile
+++ b/jenkins-docker/slave-mvn/Makefile
@@ -1,5 +1,5 @@
 NO_CACHE=false
-IMAGE=gerrit-ci-slave-mvn
+IMAGE=gerritforge/gerrit-ci-slave-mvn
 
 # Targets
 
diff --git a/jenkins-docker/slave/Makefile b/jenkins-docker/slave/Makefile
index a5edf76..30c20a6 100644
--- a/jenkins-docker/slave/Makefile
+++ b/jenkins-docker/slave/Makefile
@@ -1,5 +1,5 @@
 NO_CACHE=false
-IMAGE=gerrit-ci-slave
+IMAGE=gerritforge/gerrit-ci-slave
 
 build:  id_rsa.pub
 	docker build --no-cache=$(NO_CACHE) -t ${IMAGE} .