@@ -3,7 +3,7 @@ ARG TRIXIE_TAG=20251103
33ARG DEBIAN_RELEASE_LINE=trixie
44ARG DEBIAN_VERSION=20251117
55ARG DEBIAN_VARIANT="-slim"
6- FROM debian:"${DEBIAN_RELEASE_LINE}-${DEBIAN_VERSION}${DEBIAN_VARIANT}" AS jre-build
6+ FROM debian:"${DEBIAN_RELEASE_LINE}-${DEBIAN_VERSION}${DEBIAN_VARIANT}" AS jre-and-war
77
88ARG JAVA_VERSION=17.0.18_8
99
@@ -16,6 +16,7 @@ RUN apt-get update \
1616 && apt-get install --no-install-recommends -y \
1717 ca-certificates \
1818 curl \
19+ gnupg \
1920 jq \
2021 && rm -rf /var/lib/apt/lists/* \
2122 && /usr/bin/jdk-download.sh
@@ -44,15 +45,27 @@ RUN java_major_version="$(jlink --version 2>&1 | cut -c1-2)"; \
4445 --output /javaruntime; \
4546 fi
4647
48+ # Jenkins version being bundled in this docker image
49+ ARG JENKINS_VERSION=2.534
50+ # Can be used to customize where jenkins.war get downloaded from
51+ ARG WAR_URL=https://get.jenkins.io/war/${JENKINS_VERSION}/jenkins.war
52+
53+ COPY jenkins.io-2026.key /war/jenkins-key.pub
54+
55+ # Not using ADD as it does not check Last-Modified header
56+ # see https://github.com/docker/docker/issues/8331
57+ RUN curl -fsSL "${WAR_URL}" -o /war/jenkins.war \
58+ && curl -fsSL "${WAR_URL}.asc" -o /war/jenkins.war.asc \
59+ && gpg --import /war/jenkins-key.pub \
60+ && gpg --verify --trust-model direct /war/jenkins.war.asc /war/jenkins.war
61+
4762FROM debian:"${DEBIAN_RELEASE_LINE}-${DEBIAN_VERSION}${DEBIAN_VARIANT}" AS controller
4863
4964RUN apt-get update \
5065 && apt-get install -y --no-install-recommends \
5166 ca-certificates \
5267 curl \
5368 git \
54- gnupg \
55- gpg \
5669 libfontconfig1 \
5770 libfreetype6 \
5871 procps \
@@ -107,23 +120,6 @@ VOLUME $JENKINS_HOME
107120# or config file with your custom jenkins Docker image.
108121RUN mkdir -p ${REF}/init.groovy.d
109122
110- # jenkins version being bundled in this docker image
111- ARG JENKINS_VERSION
112- ENV JENKINS_VERSION=${JENKINS_VERSION:-2.547}
113-
114- # jenkins.war checksum, download will be validated using it
115- ARG WAR_SHA=ef0301ce35bff7ead76201a8202acad6338568f0832666a2672831b260e08088
116-
117- # Can be used to customize where jenkins.war get downloaded from
118- ARG WAR_URL=https://get.jenkins.io/war/${JENKINS_VERSION}/jenkins.war
119-
120- # could use ADD but this one does not check Last-Modified header neither does it allow to control checksum
121- # see https://github.com/docker/docker/issues/8331
122- RUN curl -fsSL ${WAR_URL} -o /usr/share/jenkins/jenkins.war \
123- && echo "${WAR_SHA} /usr/share/jenkins/jenkins.war" >/tmp/war_sha \
124- && sha256sum -c --strict /tmp/war_sha \
125- && rm -f /tmp/war_sha
126-
127123ENV JENKINS_UC=https://updates.jenkins.io
128124ENV JENKINS_UC_EXPERIMENTAL=https://updates.jenkins.io/experimental
129125ENV JENKINS_INCREMENTALS_REPO_MIRROR=https://repo.jenkins-ci.org/incrementals
@@ -132,9 +128,9 @@ RUN chown -R ${user} "$JENKINS_HOME" "$REF"
132128ARG PLUGIN_CLI_VERSION=2.13.2
133129ARG PLUGIN_CLI_URL=https://github.com/jenkinsci/plugin-installation-manager-tool/releases/download/${PLUGIN_CLI_VERSION}/jenkins-plugin-manager-${PLUGIN_CLI_VERSION}.jar
134130RUN curl -fsSL ${PLUGIN_CLI_URL} -o /opt/jenkins-plugin-manager.jar \
135- && echo "$(curl -fsSL " ${PLUGIN_CLI_URL}.sha256") /opt/jenkins-plugin-manager.jar" >/tmp/war_sha \
136- && sha256sum -c --strict /tmp/war_sha \
137- && rm -f /tmp/war_sha
131+ && echo "$(curl -fsSL " ${PLUGIN_CLI_URL}.sha256") /opt/jenkins-plugin-manager.jar" >/tmp/jpm_sha \
132+ && sha256sum -c --strict /tmp/jpm_sha \
133+ && rm -f /tmp/jpm_sha
138134
139135# for main web interface:
140136EXPOSE ${http_port}
@@ -146,14 +142,17 @@ ENV COPY_REFERENCE_FILE_LOG=$JENKINS_HOME/copy_reference_file.log
146142
147143ENV JAVA_HOME=/opt/java/openjdk
148144ENV PATH="${JAVA_HOME}/bin:${PATH}"
149- COPY --from=jre-build /javaruntime $JAVA_HOME
145+ COPY --from=jre-and-war /javaruntime $JAVA_HOME
146+ COPY --from=jre-and-war /war/jenkins.war /usr/share/jenkins/jenkins.war
150147
151148USER ${user}
152149
153150COPY jenkins-support /usr/local/bin/jenkins-support
154151COPY jenkins.sh /usr/local/bin/jenkins.sh
155152COPY jenkins-plugin-cli.sh /bin/jenkins-plugin-cli
156153
154+ ARG JENKINS_VERSION=2.534
155+
157156ENTRYPOINT ["/usr/bin/tini" , "--" , "/usr/local/bin/jenkins.sh" ]
158157
159158# metadata labels
0 commit comments