Jenkins 2.580.1 build recipe

The recipe ReadyStack built readystack/jenkins:2.580.1-CE-ubuntu24.04-r4 from: the upstream source it starts from, every pinned input, and the files that run the build with the network off. Public here: the source and commit, the pinned inputs, all 26 recipe files with their sizes and SHA-256, 9 of them public in full or in part, and the opening lines of the Dockerfile and build script.

The whole recipe

Free account

An account is an email address, a username and a password: no card, no donation. It opens all 26 recipe files; the build kit itself keeps its own terms.

Upstream source

Public

github.com/jenkinsci/jenkins (jenkins-2.580.1) at 500c80a425077d987b97f62be32887d4f32e9ffb

Fetched once, with the network on, by the vendor step (Dockerfile.vendor) when the kit was made; the offline build uses the kit's vendored copies:

Pinned inputs

As JSON
  • Base imageeclipse-temurin:21-jre-noble@sha256:cd35bb33859641c5374415826a5951845104093eaa401cbe9d3d9023444f1c13
  • Base imagemaven:3.9.8-eclipse-temurin-21@sha256:de18e4e51396ad9266f76669779ed6d6b49fbb0f45ed6f39169d87378d548d7d
  • BuildKitmoby/buildkit:v0.31.2
    sha256:e0e67ea9c4bb07bdef683e29f70f3b623d1eb9c82274a9ec04e6bb0511449fb0
  • Build methodsource-rebuild-java
  • SOURCE_DATE_EPOCH1790757019 (2026-09-30T08:30:19Z)
  • Target digest (linux/amd64)sha256:dd9187881e65045afdac952266c3af43160a799f940c058738f37028f9d1b476
  • Target config digestsha256:716aed3c669e2803e92f8cef92f389701feea70bfe87bd195772e50b53e0891b
  • Checksummed kit files62,153 (CHECKSUMS.sha256)

Dockerfile Dockerfile.offline.pinned

58 lines · 4.4 KB
# GENERATED L-009 hermetic Java build (--network=none, SBOM+SLSA-attestation-producing).
# Pinned bases; vendored source + maven cache(s) + toolchain/runtime debs from Dockerfile.vendor.
FROM maven:3.9.8-eclipse-temurin-21@sha256:de18e4e51396ad9266f76669779ed6d6b49fbb0f45ed6f39169d87378d548d7d AS jbuild
# dpkg-install the vendored build toolchain (git/unzip) — no apt, fully offline.
RUN --mount=type=bind,source=vendored/build-debs,target=/tmp/bdebs \
    set --; for f in /tmp/bdebs/*.deb; do [ -e "$f" ] && set -- "$@" "$f"; done; \
    for pass in 1 2 3 4 5; do [ $# -eq 0 ] || dpkg -i --skip-same-version "$@" >/dev/null 2>&1 && break; done; \
    dpkg --configure -a && bad= && for d in "$@"; do p=$(dpkg-deb -f "$d" Package) v=$(dpkg-deb -f "$d" Version); \
      case "$(dpkg-query -W -f='${Version} ${db:Status-Abbrev}' "$p" 2>/dev/null)" in "$v ii"*) ;; *) bad="$bad $p=$v" ;; esac; done && \
    { [ -z "$bad" ] || { echo "vendored debs not installed at their vendored version:$bad" >&2; false; }; }
WORKDIR /src
COPY vendored/jenkins-src/ .
COPY vendored/caches/m2/ /m2/
COPY vendored/caches/corepack/ /corepack/
COPY vendored/caches/plugins/ /plugins/
ENV MAVEN_OPTS="-Xmx4g"
ENV COREPACK_HOME="/corepack"
ENV MAVEN_ARGS="-Dproject.build.outputTimestamp=2026-09-30T08:30:19Z -Dmaven.buildNumber.revisionOnScmFailure=500c80a425077d987b97f62be32887d4f32e9ffb"
RUN cd /src && COREPACK_ENABLE_NETWORK=0 YARN_ENABLE_OFFLINE_MODE=1 mvn -o -B -am -pl war,bom -Pquick-build -Dmaven.repo.local=/m2 install
RUN mkdir -p /usr/share/jenkins/ref/plugins && cp /src/war/target/jenkins.war /usr/share/jenkins/jenkins.war && cp -a /plugins/. /usr/share/jenkins/ref/plugins/ 2>/dev/null || true
RUN test -s /usr/share/jenkins/jenkins.war && echo "war staged: $(du -h /usr/share/jenkins/jenkins.war | cut -f1)"
FROM eclipse-temurin:21-jre-noble@sha256:cd35bb33859641c5374415826a5951845104093eaa401cbe9d3d9023444f1c13
ENV DEBIAN_FRONTEND=noninteractive JENKINS_HOME=/var/jenkins_home JAVA_OPTS=-Djava.awt.headless=true JENKINS_OPTS=--httpPort=8080
RUN --mount=type=bind,source=vendored/debs,target=/tmp/debs \

Continues: 34 more lines. Create a free account to read the rest, or sign in.

Build script BUILD_OFFLINE.sh

125 lines · 6.6 KB
#!/usr/bin/env bash
# =============================================================================
# ReadyStack — offline reproducible rebuild.
#
# Rebuilds this product's image from THIS ARCHIVE ALONE, with no network access
# of any kind, and prints the resulting linux/amd64 image-manifest digest.
# Run ./VERIFY_OFFLINE.sh afterwards to assert it equals the published digest.
#
# Requirements: linux/amd64 Docker host, docker buildx >= 0.30, jq, tar.
# No git, no registry access, no additional tooling.
#
#   ./BUILD_OFFLINE.sh                the rebuild (OCI image + a docker-loadable copy)
#   ./BUILD_OFFLINE.sh --provenance   the same rebuild with SLSA v1 build provenance (mode=max) attached to the OCI
#                                     image, generated by BuildKit, not by any build step. Run on your own hardened,
#                                     isolated build platform and sign that provenance with a key the build cannot
#                                     reach, and the result meets SLSA Build Level 3 (see REBUILD.md). The image
#                                     digest is the same either way.
# =============================================================================
set -euo pipefail
PROVENANCE=0
for arg in "$@"; do
  case "$arg" in
    --provenance) PROVENANCE=1 ;;
    -h|--help) sed -n '2,20p' "$0"; exit 0 ;;

Continues: 101 more lines. Create a free account to read the rest, or sign in.

Recipe files

26 files · SHA-256 of each as published here
FileSizeSHA-256Access
BASES.tsv310 Bd5b8d03348ca…Public · View
BUILD_OFFLINE.sh6.6 KB83299978ccd0…Opening lines public
CHECKSUMS.sha2569.2 MB7c5fef7d81fc…Free account
DOCKERFILE_NAME.txt26 B9aadd1ede68e…Public · View
Dockerfile4.4 KB1b757da3183b…Free account
Dockerfile.offline4.4 KB1b757da3183b…Free account
Dockerfile.offline.pinned4.4 KB1b757da3183b…Opening lines public
Dockerfile.vendor9.6 KB2f5cc80b6d4d…Free account
MANIFEST.txt5.2 MB27343fcc2ea0…Free account
SOURCE_DATE_EPOCH.txt11 Bcaf685be1a1f…Public · View
TARGET_DIGEST.txt320 B3813d9824c45…Public · View
VERIFY_OFFLINE.sh7.2 KB8b036b1f9a7f…Free account
docs/PROVENANCE.md1.8 KBfefa7788bb9f…Free account
docs/REBUILD.md5.0 KB9ec450ae4947…Free account
docs/VERIFY.md1.9 KBbde50a41e29d…Free account
docs/provenance/BASE_IMAGE_DIGESTS.lock50 B9e0134251717…Public · View
docs/provenance/BUILD_RECIPE.json23 KBb4eff9db74c0…Free account
docs/provenance/CUSTODY_INPUTS.json658 B744f3bb48922…Free account
docs/provenance/SOURCE_FILE_MANIFEST.json377 KB9b81ed24dc93…Free account
docs/provenance/SOURCE_TREE_HASH.json317 Bb4a66473861b…Public · View
docs/provenance/SYSTEM_PINNING.lock43 Bbd3e75bbc9b5…Free account
docs/provenance/TOOLCHAIN.lock10 KBe2f6fb1a4814…Free account
entrypoint.sh4.6 KB649c58a94aa5…Free account
rebuild.json1.5 KBdafccbaae8d4…Free account
security.groovy2.3 KB117e442330f3…Free account
toolchain/BUILDKIT_TAG.txt22 Bfcd530eeb02b…Public · View

Made from ReadyStack-jenkins-2.580.1-CE-ubuntu24.04-r4.tar.gz (SHA-256 2b699453ab99e66d833529ba3e67f36c34e1de50f3b5c1c141257728ebf0c3de), the build kit on sale for this release, on 2026-10-29.

What the Hermetic Build Kit adds

Free with a verified email

The recipe pins every input; the kit carries them, so the build runs with the network off:

  • Vendored sources and packages49,629 files, 1.1 GB
  • Base images (OCI layouts)23 files, 323 MB
  • Pinned BuildKit toolchain1 files, 106 MB
  • Handbooks, SBOM, security report and records12,476 files, 35 MB