fix #18
copy files from /sur/share/jenkins/ref to jenkins_home
so jenkins_home can be initialized with some reference
configuration/plugins but still can be customized and
be persisted on a volume
utility script to install plugins at startup based on
support-core plugin format
diff --git a/Dockerfile b/Dockerfile
index b59322c..bf18942 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -3,15 +3,21 @@
RUN apt-get update && apt-get install -y wget git curl zip && rm -rf /var/lib/apt/lists/*
ENV JENKINS_VERSION 1.565.3
-RUN mkdir /usr/share/jenkins/
+
+# `/usr/share/jenkins/ref/` contains all reference configuraiton 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
+
RUN useradd -d /home/jenkins -m -s /bin/bash jenkins
-COPY init.groovy /tmp/WEB-INF/init.groovy.d/tcp-slave-angent-port.groovy
-RUN curl -L http://mirrors.jenkins-ci.org/war-stable/$JENKINS_VERSION/jenkins.war -o /usr/share/jenkins/jenkins.war \
- && cd /tmp && zip -g /usr/share/jenkins/jenkins.war WEB-INF/init.groovy.d/tcp-slave-angent-port.groovy && rm -rf /tmp/WEB-INF
+COPY init.groovy /usr/share/jenkins/ref/init.groovy.d/tcp-slave-angent-port.groovy
+
+# could use ADD but this one does not check Last-Modified header - see https://github.com/docker/docker/issues/8331
+RUN curl -L http://mirrors.jenkins-ci.org/war-stable/$JENKINS_VERSION/jenkins.war -o /usr/share/jenkins/jenkins.war
ENV JENKINS_HOME /var/jenkins_home
-RUN usermod -m -d "$JENKINS_HOME" jenkins && chown -R jenkins "$JENKINS_HOME"
+ENV JENKINS_UC https://updates.jenkins-ci.org
+RUN usermod -m -d "$JENKINS_HOME" jenkins && chown -R jenkins "$JENKINS_HOME" /usr/share/jenkins/ref
VOLUME /var/jenkins_home
# for main web interface:
@@ -24,3 +30,6 @@
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