{"slug":"kafka","tag":"4.4.0-CE-ubuntu24.04-r2","current":true,"account":false,"tarball":"ReadyStack-kafka-4.4.0-CE-ubuntu24.04-r2.tar.gz","tarball_sha256":"9eaa3922d59bac071dc4923a1f969ada25f47a02115269407cfa7e87a65140bb","generated_at":"2026-10-29T19:38:05Z","dockerfile":"Dockerfile.offline.pinned","build_script":"BUILD_OFFLINE.sh","pins":{"upstream":{"repo":"https://github.com/apache/kafka","ref":"4.4.0-rc4","commit":"1156b2752aaa28eafc0b4c4d387e63356793268d","url":"https://github.com/apache/kafka/tree/1156b2752aaa28eafc0b4c4d387e63356793268d"},"fetches":[{"kind":"git","url":"https://github.com/apache/kafka","ref":"4.4.0-rc4"}],"bases":[{"image":"eclipse-temurin:25-jdk-noble","digest":"sha256:589ff4cc3f71aab462e7048a47a0d10edf57fbccde3fceea2281e610bf5880b4"},{"image":"eclipse-temurin:25-jre-noble","digest":"sha256:ce8543ddd3070ccbeaac2106a74c9387ddeb8d47a1c43348345715c1ef245c7f"}],"toolchain":{"buildkit":"moby/buildkit:v0.31.2","buildkit_image_digest":"sha256:e0e67ea9c4bb07bdef683e29f70f3b623d1eb9c82274a9ec04e6bb0511449fb0","builder_images":["eclipse-temurin:25-jdk-noble@sha256:589ff4cc3f71aab462e7048a47a0d10edf57fbccde3fceea2281e610bf5880b4"]},"build_method":"source-rebuild-java","source_date_epoch":1791303144,"source_date_epoch_utc":"2026-10-06T16:12:24Z","target":{"image":"readystack/kafka:4.4.0-CE-ubuntu24.04-r2","image_manifest_digest":"sha256:d3f92612901df9e1b5427c406b7b4ddf8f46dcc56501ef558e7888fdd585eec4","config_digest":"sha256:7ffd1a2154b549b218e84ea7666be2404f4a9f1d561e9020df6636eadb5a9bef"},"checksummed_files":23431},"files":[{"path":"BASES.tsv","size":306,"sha256":"396c7396e5142d15f68238751953ae5f49656ce64c26fb590374adb106fd331e","public":"full","lines":2,"url":"/api/recipe/kafka/4.4.0-CE-ubuntu24.04-r2/files/BASES.tsv","text":"eclipse-temurin:25-jdk-noble@sha256:589ff4cc3f71aab462e7048a47a0d10edf57fbccde3fceea2281e610bf5880b4\tbases/eclipse-temurin_25-jdk-noble_589ff4cc3f71.oci\neclipse-temurin:25-jre-noble@sha256:ce8543ddd3070ccbeaac2106a74c9387ddeb8d47a1c43348345715c1ef245c7f\tbases/eclipse-temurin_25-jre-noble_ce8543ddd307.oci\n"},{"path":"BUILD_OFFLINE.sh","size":6738,"sha256":"83299978ccd02a0b69e163d760da1211b401bbfa35a3184ca674dc37ff876732","public":"preview","lines":125,"preview":{"text":"#!/usr/bin/env bash\n# =============================================================================\n# ReadyStack — offline reproducible rebuild.\n#\n# Rebuilds this product's image from THIS ARCHIVE ALONE, with no network access\n# of any kind, and prints the resulting linux/amd64 image-manifest digest.\n# Run ./VERIFY_OFFLINE.sh afterwards to assert it equals the published digest.\n#\n# Requirements: linux/amd64 Docker host, docker buildx >= 0.30, jq, tar.\n# No git, no registry access, no additional tooling.\n#\n#   ./BUILD_OFFLINE.sh                the rebuild (OCI image + a docker-loadable copy)\n#   ./BUILD_OFFLINE.sh --provenance   the same rebuild with SLSA v1 build provenance (mode=max) attached to the OCI\n#                                     image, generated by BuildKit, not by any build step. Run on your own hardened,\n#                                     isolated build platform and sign that provenance with a key the build cannot\n#                                     reach, and the result meets SLSA Build Level 3 (see REBUILD.md). The image\n#                                     digest is the same either way.\n# =============================================================================\nset -euo pipefail\nPROVENANCE=0\nfor arg in \"$@\"; do\n  case \"$arg\" in\n    --provenance) PROVENANCE=1 ;;\n    -h|--help) sed -n '2,20p' \"$0\"; exit 0 ;;","lines_shown":24,"lines_total":125}},{"path":"CHECKSUMS.sha256","size":4353045,"sha256":"f359067c5134cfea90ad5e621e60786f6a7b0c7f8d680867bfd20956464d6d2c","public":"account","lines":23431},{"path":"DOCKERFILE_NAME.txt","size":26,"sha256":"9aadd1ede68e016a6f163c97befc5ff2fcdc8ebd4f84b108dba63cb195fa8c84","public":"full","lines":1,"url":"/api/recipe/kafka/4.4.0-CE-ubuntu24.04-r2/files/DOCKERFILE_NAME.txt","text":"Dockerfile.offline.pinned\n"},{"path":"Dockerfile","size":5653,"sha256":"1c750db078928d5d0d670c26633235f783042f28367c4f06048b1303036b8464","public":"account","lines":52},{"path":"Dockerfile.offline","size":5653,"sha256":"1c750db078928d5d0d670c26633235f783042f28367c4f06048b1303036b8464","public":"account","lines":52},{"path":"Dockerfile.offline.pinned","size":5653,"sha256":"1c750db078928d5d0d670c26633235f783042f28367c4f06048b1303036b8464","public":"preview","lines":52,"preview":{"text":"# GENERATED L-009 hermetic Java build (--network=none, SBOM+SLSA-attestation-producing).\n# Pinned bases; vendored source + gradle cache(s) + toolchain/runtime debs from Dockerfile.vendor.\nFROM eclipse-temurin:25-jdk-noble@sha256:589ff4cc3f71aab462e7048a47a0d10edf57fbccde3fceea2281e610bf5880b4 AS jbuild\n# dpkg-install the vendored build toolchain (git/unzip) — no apt, fully offline.\nRUN --mount=type=bind,source=vendored/build-debs,target=/tmp/bdebs \\\n    set --; for f in /tmp/bdebs/*.deb; do [ -e \"$f\" ] && set -- \"$@\" \"$f\"; done; \\\n    for pass in 1 2 3 4 5; do [ $# -eq 0 ] || dpkg -i --skip-same-version \"$@\" >/dev/null 2>&1 && break; done; \\\n    dpkg --configure -a && bad= && for d in \"$@\"; do p=$(dpkg-deb -f \"$d\" Package) v=$(dpkg-deb -f \"$d\" Version); \\\n      case \"$(dpkg-query -W -f='${Version} ${db:Status-Abbrev}' \"$p\" 2>/dev/null)\" in \"$v ii\"*) ;; *) bad=\"$bad $p=$v\" ;; esac; done && \\\n    { [ -z \"$bad\" ] || { echo \"vendored debs not installed at their vendored version:$bad\" >&2; false; }; }\nWORKDIR /src\nCOPY vendored/kafka-src/ .\nCOPY vendored/caches/gradle-home/ /gradle-home/\nENV GRADLE_USER_HOME=\"/gradle-home\"\nENV GRADLE_OPTS=\"-Dorg.gradle.daemon=false\"\nRUN GH=\"${GRADLE_USER_HOME:-/gradle-home}\"; rm -rf \"$GH\"/caches/*/transforms \"$GH\"/caches/*/transforms-* \"$GH\"/caches/*/groovy-dsl \"$GH\"/caches/*/kotlin-dsl \"$GH\"/caches/*/generated-gradle-jars \"$GH\"/caches/*/dependencies-accessors \"$GH\"/caches/jars-* \"$GH\"/caches/build-cache-* 2>/dev/null; true\nRUN mkdir -p \"${GRADLE_USER_HOME:-/root/.gradle}/init.d\" && printf '%s\\n' 'allprojects { configurations.all { resolutionStrategy { force(\"at.yawk.lz4:lz4-java:1.11.4\") } } }' > \"${GRADLE_USER_HOME:-/root/.gradle}/init.d/kitforge-cve-forces.gradle\" && cat \"${GRADLE_USER_HOME:-/root/.gradle}/init.d/kitforge-cve-forces.gradle\"\nRUN cd /src && ./gradlew --no-daemon --offline --console=plain -PcommitId=1156b2752aaa28eafc0b4c4d387e63356793268d releaseTarGz\nRUN mkdir -p /opt/kafka && tar -xzf /src/core/build/distributions/kafka_2.13-4.4.0.tgz -C /opt/kafka --strip-components=1 && rm -rf /opt/kafka/site-docs\nRUN mkdir -p /opt/kafka/readystack-docker && cp /src/docker/resources/common-scripts/bash-config /src/docker/resources/common-scripts/configure /src/docker/resources/common-scripts/configureDefaults /src/docker/resources/common-scripts/run /src/docker/jvm/launch /opt/kafka/readystack-docker/ && sed -i '/SharedArchiveFile/d' /opt/kafka/readystack-docker/launch && ! grep -q SharedArchiveFile /opt/kafka/readystack-docker/launch\nFROM eclipse-temurin:25-jre-noble@sha256:ce8543ddd3070ccbeaac2106a74c9387ddeb8d47a1c43348345715c1ef245c7f\nENV DEBIAN_FRONTEND=noninteractive PATH=/opt/kafka/bin:/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\nRUN --mount=type=bind,source=vendored/debs,target=/tmp/debs \\\n    set --; for f in /tmp/debs/*.deb; do [ -e \"$f\" ] && set -- \"$@\" \"$f\"; done; \\","lines_shown":24,"lines_total":52}},{"path":"Dockerfile.vendor","size":2618,"sha256":"9f753efa6eeced2c935458d82fb0cd519cc62ee07f0aaceaf81386fa6654dad1","public":"account","lines":31},{"path":"MANIFEST.txt","size":2759767,"sha256":"479afbef25067495f86dcacc8d39a4e6261b9e23c58b4eddc84493ddd156b581","public":"account","lines":23433},{"path":"SOURCE_DATE_EPOCH.txt","size":11,"sha256":"f0c2454b34731e35b6fe0e0ea7881d9ddd5caa0b38b527fa06cf5d6f6552d475","public":"full","lines":1,"url":"/api/recipe/kafka/4.4.0-CE-ubuntu24.04-r2/files/SOURCE_DATE_EPOCH.txt","text":"1791303144\n"},{"path":"TARGET_DIGEST.txt","size":376,"sha256":"166b6ebd3c799aab4500fb542abfe90f7651b80c7a2ea7f08f1cbb60b7e37f42","public":"full","lines":7,"url":"/api/recipe/kafka/4.4.0-CE-ubuntu24.04-r2/files/TARGET_DIGEST.txt","text":"image_manifest_digest=sha256:d3f92612901df9e1b5427c406b7b4ddf8f46dcc56501ef558e7888fdd585eec4\nconfig_digest=sha256:7ffd1a2154b549b218e84ea7666be2404f4a9f1d561e9020df6636eadb5a9bef\ntag=readystack/kafka:4.4.0-CE-ubuntu24.04-r2\nprobe_port=9092\nprobe_path=/\nprobe_timeout=180\nprobe_exec=/opt/kafka/bin/kafka-cluster.sh cluster-id --bootstrap-server localhost:9092 >/dev/null 2>&1\n"},{"path":"VERIFY_OFFLINE.sh","size":7331,"sha256":"8b036b1f9a7f7deb4dbab14ef6b7c40622d2820904e891b8845ba3580e924506","public":"account","lines":128},{"path":"docs/PROVENANCE.md","size":1712,"sha256":"a54972e432f5d08acb2016b17f6e9d75734f6ada798909fe0c3d83909892b653","public":"account","lines":28},{"path":"docs/REBUILD.md","size":5086,"sha256":"7dbb0f6f20146a766dcce69c8690ced0808651472fcb991dc1a41c97db0fb4b9","public":"account","lines":57},{"path":"docs/VERIFY.md","size":1948,"sha256":"76331f783d1496a224079323f18eb168f7ddf84d8aec00ad8028d449fe69cd3f","public":"account","lines":34},{"path":"docs/provenance/BASE_IMAGE_DIGESTS.lock","size":76,"sha256":"181de58ed4996b99c227330eb7b54b1b329faca7593999fd8b0d5f2eb13d00c7","public":"full","lines":2,"url":"/api/recipe/kafka/4.4.0-CE-ubuntu24.04-r2/files/docs/provenance/BASE_IMAGE_DIGESTS.lock","text":"# base images for kafka (resolve at build_kit)\neclipse-temurin:25-jdk-noble\n"},{"path":"docs/provenance/BUILD_RECIPE.json","size":5010,"sha256":"76116121977125543fbb4169e526787901263afa339732a93d0e5d9e4436bd04","public":"account","lines":60},{"path":"docs/provenance/CUSTODY_INPUTS.json","size":645,"sha256":"48cf5cb75c2dfaaac4c9a75e948e64366cd06ad7f7f551cb8a4416b4e1ad3341","public":"account","lines":17},{"path":"docs/provenance/SOURCE_FILE_MANIFEST.json","size":439469,"sha256":"e818f41090dc3ac62f59d6e86bf0980cc07bec5a8b6d0692ada3a3974ad52a22","public":"account","lines":5007},{"path":"docs/provenance/SOURCE_TREE_HASH.json","size":303,"sha256":"40b78009a48aed18c70f9e193081dae9476ea15218772ff218b5a6b6ac5a0ad1","public":"full","lines":9,"url":"/api/recipe/kafka/4.4.0-CE-ubuntu24.04-r2/files/docs/provenance/SOURCE_TREE_HASH.json","text":"{\n  \"schema\": \"kitforge.source_tree_hash.v1\",\n  \"slug\": \"kafka\",\n  \"repo\": \"https://github.com/apache/kafka\",\n  \"ref\": \"4.4.0-rc4\",\n  \"commit\": \"1156b2752aaa28eafc0b4c4d387e63356793268d\",\n  \"tree_listing_sha256\": \"b5da1e956699ffe902548159723a07726c779eccb63a74c376091efa1d0a83e7\",\n  \"file_count\": 7521\n}"},{"path":"docs/provenance/SYSTEM_PINNING.lock","size":30,"sha256":"23adcc4de32919fd32e222da3a9073459392f63262a9760aa12a9e18ffed10e5","public":"account","lines":3},{"path":"docs/provenance/TOOLCHAIN.lock","size":3316,"sha256":"59ead97adb80944dd284e3e45a31b4d5fa11deaf10d4e4adc6efe07a002a1692","public":"account","lines":77},{"path":"rebuild.json","size":1555,"sha256":"8038d21b6f11669956d88ba6362ba876e06082066d87d6e72a19c45120bdcfdc","public":"account","lines":38},{"path":"server.properties","size":1701,"sha256":"534dba72903764dd3bfce5ed066fa7d388b762a1151e2a89a804e3cdb115cb6b","public":"account","lines":33},{"path":"toolchain/BUILDKIT_TAG.txt","size":22,"sha256":"fcd530eeb02b063d2f047adad6eef896422a8e8d558513e5f09b2a262be32573","public":"full","lines":1,"url":"/api/recipe/kafka/4.4.0-CE-ubuntu24.04-r2/files/toolchain/BUILDKIT_TAG.txt","text":"moby/buildkit:v0.31.2\n"}],"skipped":[],"kit_adds":{"bases":{"files":18,"bytes":246682954},"docs":{"files":7578,"bytes":89854782},"toolchain":{"files":1,"bytes":111529472},"vendored":{"files":15811,"bytes":1067606874}},"links":{"page":"https://readystack.dev/products/kafka/recipe","signup":"https://readystack.dev/login.html?create=1&next=%2Fproducts%2Fkafka%2Frecipe","kit":"https://readystack.dev/buy.html?product=kafka"}}