diff --git a/.test/all-tags.json b/.test/all-tags.json index 92aad97..8e31e7f 100644 --- a/.test/all-tags.json +++ b/.test/all-tags.json @@ -1173,6 +1173,158 @@ "mips64le/busybox:uclibc": [ "b0bb94feb28087aee21e4a4c0b9cd51b0ba4737c166033e34fa245433b0f7447-mips64le" ], + "buildkit:0.13.2": [ + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-amd64", + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-arm32v5", + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-arm32v7", + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-arm64v8", + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-i386", + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-mips64le", + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-ppc64le", + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-riscv64", + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-s390x" + ], + "buildkit:0.13": [ + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-amd64", + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-arm32v5", + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-arm32v7", + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-arm64v8", + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-i386", + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-mips64le", + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-ppc64le", + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-riscv64", + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-s390x" + ], + "buildkit:0": [ + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-amd64", + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-arm32v5", + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-arm32v7", + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-arm64v8", + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-i386", + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-mips64le", + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-ppc64le", + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-riscv64", + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-s390x" + ], + "buildkit:latest": [ + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-amd64", + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-arm32v5", + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-arm32v7", + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-arm64v8", + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-i386", + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-mips64le", + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-ppc64le", + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-riscv64", + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-s390x" + ], + "amd64/buildkit:0.13.2": [ + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-amd64" + ], + "amd64/buildkit:0.13": [ + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-amd64" + ], + "amd64/buildkit:0": [ + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-amd64" + ], + "amd64/buildkit:latest": [ + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-amd64" + ], + "arm32v5/buildkit:0.13.2": [ + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-arm32v5" + ], + "arm32v5/buildkit:0.13": [ + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-arm32v5" + ], + "arm32v5/buildkit:0": [ + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-arm32v5" + ], + "arm32v5/buildkit:latest": [ + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-arm32v5" + ], + "arm32v7/buildkit:0.13.2": [ + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-arm32v7" + ], + "arm32v7/buildkit:0.13": [ + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-arm32v7" + ], + "arm32v7/buildkit:0": [ + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-arm32v7" + ], + "arm32v7/buildkit:latest": [ + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-arm32v7" + ], + "arm64v8/buildkit:0.13.2": [ + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-arm64v8" + ], + "arm64v8/buildkit:0.13": [ + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-arm64v8" + ], + "arm64v8/buildkit:0": [ + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-arm64v8" + ], + "arm64v8/buildkit:latest": [ + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-arm64v8" + ], + "i386/buildkit:0.13.2": [ + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-i386" + ], + "i386/buildkit:0.13": [ + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-i386" + ], + "i386/buildkit:0": [ + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-i386" + ], + "i386/buildkit:latest": [ + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-i386" + ], + "mips64le/buildkit:0.13.2": [ + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-mips64le" + ], + "mips64le/buildkit:0.13": [ + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-mips64le" + ], + "mips64le/buildkit:0": [ + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-mips64le" + ], + "mips64le/buildkit:latest": [ + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-mips64le" + ], + "ppc64le/buildkit:0.13.2": [ + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-ppc64le" + ], + "ppc64le/buildkit:0.13": [ + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-ppc64le" + ], + "ppc64le/buildkit:0": [ + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-ppc64le" + ], + "ppc64le/buildkit:latest": [ + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-ppc64le" + ], + "riscv64/buildkit:0.13.2": [ + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-riscv64" + ], + "riscv64/buildkit:0.13": [ + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-riscv64" + ], + "riscv64/buildkit:0": [ + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-riscv64" + ], + "riscv64/buildkit:latest": [ + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-riscv64" + ], + "s390x/buildkit:0.13.2": [ + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-s390x" + ], + "s390x/buildkit:0.13": [ + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-s390x" + ], + "s390x/buildkit:0": [ + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-s390x" + ], + "s390x/buildkit:latest": [ + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e-s390x" + ], "infosiftr-moby:20.10.27": [ "248a27866206a7cffd2764f528bf60c98d80e22d8855e3e47b5ba997b0270a62-amd64", "248a27866206a7cffd2764f528bf60c98d80e22d8855e3e47b5ba997b0270a62-arm32v5", diff --git a/.test/arch-queue/in.json b/.test/arch-queue/in.json new file mode 120000 index 0000000..06b614e --- /dev/null +++ b/.test/arch-queue/in.json @@ -0,0 +1 @@ +../builds.json \ No newline at end of file diff --git a/.test/arch-queue/out.json b/.test/arch-queue/out.json new file mode 100644 index 0000000..711c739 --- /dev/null +++ b/.test/arch-queue/out.json @@ -0,0 +1,1137 @@ +{ + "4b199ac326c74b3058a147e14f553af9e8e1659abc29bd3e82c9c9807b66ee43": { + "buildId": "4b199ac326c74b3058a147e14f553af9e8e1659abc29bd3e82c9c9807b66ee43", + "build": { + "img": "oisupport/staging-amd64:4b199ac326c74b3058a147e14f553af9e8e1659abc29bd3e82c9c9807b66ee43", + "resolved": null, + "sourceId": "76d7d7d66aeb62eb797c8475407e6cd2b6ad262957a622035f81fb93e532b36b", + "arch": "amd64", + "parents": { + "alpine:3.18": "sha256:d695c3de6fcd8cfe3a6222b0358425d40adfd129a8a47c3416faff1a8aece389" + }, + "resolvedParents": { + "alpine:3.18": { + "schemaVersion": 2, + "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + "manifests": [ + { + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "digest": "sha256:d695c3de6fcd8cfe3a6222b0358425d40adfd129a8a47c3416faff1a8aece389", + "size": 528, + "annotations": { + "com.docker.official-images.bashbrew.arch": "amd64", + "org.opencontainers.image.ref.name": "alpine@sha256:d695c3de6fcd8cfe3a6222b0358425d40adfd129a8a47c3416faff1a8aece389" + }, + "platform": { + "architecture": "amd64", + "os": "linux" + } + } + ], + "annotations": { + "org.opencontainers.image.ref.name": "alpine@sha256:34871e7290500828b39e22294660bee86d966bc0017544e848dd9a255cdf59e0" + } + } + } + }, + "source": { + "sourceId": "76d7d7d66aeb62eb797c8475407e6cd2b6ad262957a622035f81fb93e532b36b", + "reproducibleGitChecksum": "52d3d61b1e9d12310646ec3935698a5825bf568cecc5b5fbbf4e4c4a59e53e8b", + "entries": [ + { + "GitRepo": "https://github.com/docker-library/docker.git", + "GitFetch": "refs/heads/master", + "GitCommit": "6d541d27b5dd12639e5a33a675ebca04d3837d74", + "Directory": "24/cli", + "File": "Dockerfile", + "Builder": "buildkit", + "SOURCE_DATE_EPOCH": 1700741054 + } + ], + "arches": { + "amd64": { + "tags": [ + "docker:24.0.7-cli", + "docker:24.0-cli", + "docker:24-cli", + "docker:cli", + "docker:24.0.7-cli-alpine3.18" + ], + "archTags": [ + "amd64/docker:24.0.7-cli", + "amd64/docker:24.0-cli", + "amd64/docker:24-cli", + "amd64/docker:cli", + "amd64/docker:24.0.7-cli-alpine3.18" + ], + "dockerfileParents": [ + { + "From": "alpine:3.18", + "Kind": "FROM" + } + ], + "platformString": "linux/amd64", + "platform": { + "architecture": "amd64", + "os": "linux" + }, + "parents": [ + { + "From": "alpine:3.18", + "Kind": "FROM", + "sourceId": null, + "pin": "sha256:34871e7290500828b39e22294660bee86d966bc0017544e848dd9a255cdf59e0" + } + ], + "hostArch": "amd64", + "crossHostArches": null + } + } + }, + "crossHostArches": [], + "identifier": "docker:24.0.7-cli" + }, + "52e3bf2e5ae5606b777f60a7205b338af7ecf70bfebf714e52979dbf9a055621": { + "buildId": "52e3bf2e5ae5606b777f60a7205b338af7ecf70bfebf714e52979dbf9a055621", + "build": { + "img": "oisupport/staging-amd64:52e3bf2e5ae5606b777f60a7205b338af7ecf70bfebf714e52979dbf9a055621", + "resolved": null, + "sourceId": "1f55272eded1ab37d8303492366ef26e8757c8210b24a4cb08f4fe2d63c692e3", + "arch": "amd64", + "parents": { + "docker:24-cli": "sha256:0432a4d379794811b4a2e01d0d3e67a9bcf95d6c2bf71545f03bce3f1d60f401" + }, + "resolvedParents": { + "docker:24-cli": { + "schemaVersion": 2, + "mediaType": "application/vnd.oci.image.index.v1+json", + "manifests": [ + { + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "digest": "sha256:0432a4d379794811b4a2e01d0d3e67a9bcf95d6c2bf71545f03bce3f1d60f401", + "size": 2372, + "annotations": { + "com.docker.official-images.bashbrew.arch": "amd64", + "org.opencontainers.image.ref.name": "oisupport/staging-amd64:4b199ac326c74b3058a147e14f553af9e8e1659abc29bd3e82c9c9807b66ee43@sha256:0432a4d379794811b4a2e01d0d3e67a9bcf95d6c2bf71545f03bce3f1d60f401", + "org.opencontainers.image.revision": "6d541d27b5dd12639e5a33a675ebca04d3837d74", + "org.opencontainers.image.source": "https://github.com/docker-library/docker.git#6d541d27b5dd12639e5a33a675ebca04d3837d74:24/cli", + "org.opencontainers.image.url": "https://hub.docker.com/_/docker", + "org.opencontainers.image.version": "24.0.7-cli" + }, + "platform": { + "architecture": "amd64", + "os": "linux" + } + }, + { + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "digest": "sha256:061239943a7c3d3068527dbdac796118a9f0530d0478a48623f1a49d6aeb21e6", + "size": 840, + "annotations": { + "com.docker.official-images.bashbrew.arch": "amd64", + "org.opencontainers.image.ref.name": "oisupport/staging-amd64:4b199ac326c74b3058a147e14f553af9e8e1659abc29bd3e82c9c9807b66ee43@sha256:061239943a7c3d3068527dbdac796118a9f0530d0478a48623f1a49d6aeb21e6", + "vnd.docker.reference.digest": "sha256:0432a4d379794811b4a2e01d0d3e67a9bcf95d6c2bf71545f03bce3f1d60f401", + "vnd.docker.reference.type": "attestation-manifest" + }, + "platform": { + "architecture": "unknown", + "os": "unknown" + } + } + ], + "annotations": { + "org.opencontainers.image.ref.name": "oisupport/staging-amd64:4b199ac326c74b3058a147e14f553af9e8e1659abc29bd3e82c9c9807b66ee43@sha256:153793dfbac130679ad1eebd9e88b3772c47d3903a3f299c49d5c3f23a6e35d2" + } + } + } + }, + "source": { + "sourceId": "1f55272eded1ab37d8303492366ef26e8757c8210b24a4cb08f4fe2d63c692e3", + "reproducibleGitChecksum": "e3ba9d8210082fcd33d20c53d99fc72f7a44d0d0a8abb5a4d6f54710b91f4c46", + "entries": [ + { + "GitRepo": "https://github.com/docker-library/docker.git", + "GitFetch": "refs/heads/master", + "GitCommit": "99073a3b6be3aa7e6b5af1e69509e8c532254500", + "Directory": "24/dind", + "File": "Dockerfile", + "Builder": "buildkit", + "SOURCE_DATE_EPOCH": 1701129870 + } + ], + "arches": { + "amd64": { + "tags": [ + "docker:24.0.7-dind", + "docker:24.0-dind", + "docker:24-dind", + "docker:dind", + "docker:24.0.7-dind-alpine3.18", + "docker:24.0.7", + "docker:24.0", + "docker:24", + "docker:latest", + "docker:24.0.7-alpine3.18" + ], + "archTags": [ + "amd64/docker:24.0.7-dind", + "amd64/docker:24.0-dind", + "amd64/docker:24-dind", + "amd64/docker:dind", + "amd64/docker:24.0.7-dind-alpine3.18", + "amd64/docker:24.0.7", + "amd64/docker:24.0", + "amd64/docker:24", + "amd64/docker:latest", + "amd64/docker:24.0.7-alpine3.18" + ], + "dockerfileParents": [ + { + "From": "docker:24-cli", + "Kind": "FROM" + } + ], + "platformString": "linux/amd64", + "platform": { + "architecture": "amd64", + "os": "linux" + }, + "parents": [ + { + "From": "docker:24-cli", + "Kind": "FROM", + "sourceId": "76d7d7d66aeb62eb797c8475407e6cd2b6ad262957a622035f81fb93e532b36b", + "pin": null + } + ], + "hostArch": "amd64", + "crossHostArches": null + } + } + }, + "crossHostArches": [], + "identifier": "docker:24.0.7-dind" + }, + "71756dd75e41c4bc5144b64d36b4834a5a960c495470915eb69f96e9f2cb6694": { + "buildId": "71756dd75e41c4bc5144b64d36b4834a5a960c495470915eb69f96e9f2cb6694", + "build": { + "img": "oisupport/staging-amd64:71756dd75e41c4bc5144b64d36b4834a5a960c495470915eb69f96e9f2cb6694", + "resolved": null, + "sourceId": "a9f3e362f7d26c466c22529d0a01d527e8900cbd9e0fabd2cc0ce342868768c4", + "arch": "amd64", + "parents": { + "golang:1.19-alpine3.16": "sha256:e785cd4ee42f2c1d3845bae90e43b13d82d580843b1666207a9508807500e69f", + "alpine:3.16": "sha256:ca452b8ab373e6de9c39d030870a52b8f0d3a9cf998c43183fd114660ae96330" + }, + "resolvedParents": { + "golang:1.19-alpine3.16": { + "schemaVersion": 2, + "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + "manifests": [ + { + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "digest": "sha256:e785cd4ee42f2c1d3845bae90e43b13d82d580843b1666207a9508807500e69f", + "size": 1158, + "annotations": { + "com.docker.official-images.bashbrew.arch": "amd64", + "org.opencontainers.image.ref.name": "golang:1.19-alpine3.16@sha256:e785cd4ee42f2c1d3845bae90e43b13d82d580843b1666207a9508807500e69f" + }, + "platform": { + "architecture": "amd64", + "os": "linux" + } + } + ], + "annotations": { + "org.opencontainers.image.ref.name": "golang:1.19-alpine3.16@sha256:7d7cc4682f31c69ac36c34cdbd2a5d1963c7c007ed423b7b58b73613ae085e39" + } + }, + "alpine:3.16": { + "schemaVersion": 2, + "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + "manifests": [ + { + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "digest": "sha256:ca452b8ab373e6de9c39d030870a52b8f0d3a9cf998c43183fd114660ae96330", + "size": 528, + "annotations": { + "com.docker.official-images.bashbrew.arch": "amd64", + "org.opencontainers.image.ref.name": "alpine@sha256:ca452b8ab373e6de9c39d030870a52b8f0d3a9cf998c43183fd114660ae96330" + }, + "platform": { + "architecture": "amd64", + "os": "linux" + } + } + ], + "annotations": { + "org.opencontainers.image.ref.name": "alpine@sha256:e4cdb7d47b06ba0a062ad2a97a7d154967c8f83934594d9f2bd3efa89292996b" + } + } + } + }, + "source": { + "sourceId": "a9f3e362f7d26c466c22529d0a01d527e8900cbd9e0fabd2cc0ce342868768c4", + "reproducibleGitChecksum": "63f1341601bbdd5930b9ce39f12c2a8c176d581e2687f9997444287b469409b0", + "entries": [ + { + "GitRepo": "https://github.com/docker/notary-official-images.git", + "GitFetch": "refs/heads/master", + "GitCommit": "77b9b7833f8dd6be07104b214193788795a320ff", + "Directory": "notary-server", + "File": "Dockerfile", + "Builder": "buildkit", + "SOURCE_DATE_EPOCH": 1666649444 + } + ], + "arches": { + "amd64": { + "tags": [ + "notary:server-0.7.0", + "notary:server" + ], + "archTags": [ + "amd64/notary:server-0.7.0", + "amd64/notary:server" + ], + "dockerfileParents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM" + }, + { + "From": "alpine:3.16", + "Kind": "FROM" + } + ], + "platformString": "linux/amd64", + "platform": { + "architecture": "amd64", + "os": "linux" + }, + "parents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM", + "sourceId": null, + "pin": null + }, + { + "From": "alpine:3.16", + "Kind": "FROM", + "sourceId": null, + "pin": "sha256:e4cdb7d47b06ba0a062ad2a97a7d154967c8f83934594d9f2bd3efa89292996b" + } + ], + "hostArch": "amd64", + "crossHostArches": null + } + } + }, + "crossHostArches": [], + "identifier": "notary:server-0.7.0" + }, + "57c2ee0d050ffb54c7f2b50c57b807cce8a8c478648c2eb6bbdf1604b34dd1b9": { + "buildId": "57c2ee0d050ffb54c7f2b50c57b807cce8a8c478648c2eb6bbdf1604b34dd1b9", + "build": { + "img": "oisupport/staging-amd64:57c2ee0d050ffb54c7f2b50c57b807cce8a8c478648c2eb6bbdf1604b34dd1b9", + "resolved": null, + "sourceId": "ae57bf4b8a7a08916ab01ec22da5d389716f39e9040d2c6f711283d7f8600da8", + "arch": "amd64", + "parents": { + "golang:1.19-alpine3.16": "sha256:e785cd4ee42f2c1d3845bae90e43b13d82d580843b1666207a9508807500e69f", + "alpine:3.16": "sha256:ca452b8ab373e6de9c39d030870a52b8f0d3a9cf998c43183fd114660ae96330" + }, + "resolvedParents": { + "golang:1.19-alpine3.16": { + "schemaVersion": 2, + "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + "manifests": [ + { + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "digest": "sha256:e785cd4ee42f2c1d3845bae90e43b13d82d580843b1666207a9508807500e69f", + "size": 1158, + "annotations": { + "com.docker.official-images.bashbrew.arch": "amd64", + "org.opencontainers.image.ref.name": "golang:1.19-alpine3.16@sha256:e785cd4ee42f2c1d3845bae90e43b13d82d580843b1666207a9508807500e69f" + }, + "platform": { + "architecture": "amd64", + "os": "linux" + } + } + ], + "annotations": { + "org.opencontainers.image.ref.name": "golang:1.19-alpine3.16@sha256:7d7cc4682f31c69ac36c34cdbd2a5d1963c7c007ed423b7b58b73613ae085e39" + } + }, + "alpine:3.16": { + "schemaVersion": 2, + "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + "manifests": [ + { + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "digest": "sha256:ca452b8ab373e6de9c39d030870a52b8f0d3a9cf998c43183fd114660ae96330", + "size": 528, + "annotations": { + "com.docker.official-images.bashbrew.arch": "amd64", + "org.opencontainers.image.ref.name": "alpine@sha256:ca452b8ab373e6de9c39d030870a52b8f0d3a9cf998c43183fd114660ae96330" + }, + "platform": { + "architecture": "amd64", + "os": "linux" + } + } + ], + "annotations": { + "org.opencontainers.image.ref.name": "alpine@sha256:e4cdb7d47b06ba0a062ad2a97a7d154967c8f83934594d9f2bd3efa89292996b" + } + } + } + }, + "source": { + "sourceId": "ae57bf4b8a7a08916ab01ec22da5d389716f39e9040d2c6f711283d7f8600da8", + "reproducibleGitChecksum": "1af0a47c1f09f04f907156b2c6ee9df1eb2a71185bcddb9880ecf38b1fd69956", + "entries": [ + { + "GitRepo": "https://github.com/docker/notary-official-images.git", + "GitFetch": "refs/heads/master", + "GitCommit": "77b9b7833f8dd6be07104b214193788795a320ff", + "Directory": "notary-signer", + "File": "Dockerfile", + "Builder": "buildkit", + "SOURCE_DATE_EPOCH": 1666649444 + } + ], + "arches": { + "amd64": { + "tags": [ + "notary:signer-0.7.0", + "notary:signer" + ], + "archTags": [ + "amd64/notary:signer-0.7.0", + "amd64/notary:signer" + ], + "dockerfileParents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM" + }, + { + "From": "alpine:3.16", + "Kind": "FROM" + } + ], + "platformString": "linux/amd64", + "platform": { + "architecture": "amd64", + "os": "linux" + }, + "parents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM", + "sourceId": null, + "pin": null + }, + { + "From": "alpine:3.16", + "Kind": "FROM", + "sourceId": null, + "pin": "sha256:e4cdb7d47b06ba0a062ad2a97a7d154967c8f83934594d9f2bd3efa89292996b" + } + ], + "hostArch": "amd64", + "crossHostArches": null + } + } + }, + "crossHostArches": [], + "identifier": "notary:signer-0.7.0" + }, + "191402ad0feacf03daf9d52a492207e73ef08b0bd17265043aea13aa27e2bb3f": { + "buildId": "191402ad0feacf03daf9d52a492207e73ef08b0bd17265043aea13aa27e2bb3f", + "build": { + "img": "oisupport/staging-amd64:191402ad0feacf03daf9d52a492207e73ef08b0bd17265043aea13aa27e2bb3f", + "resolved": null, + "sourceId": "df39fa95e66c7e19e56af0f9dfb8b79b15a0422a9b44eb0f16274d3f1f8939a2", + "arch": "amd64", + "parents": {}, + "resolvedParents": {} + }, + "source": { + "sourceId": "df39fa95e66c7e19e56af0f9dfb8b79b15a0422a9b44eb0f16274d3f1f8939a2", + "reproducibleGitChecksum": "17e76ce3a5b47357c5724738db231ed2477c94d43df69ce34ae0871c99f7de78", + "entries": [ + { + "GitRepo": "https://github.com/docker-library/busybox.git", + "GitFetch": "refs/heads/dist-amd64", + "GitCommit": "d0b7d566eb4f1fa9933984e6fc04ab11f08f4592", + "Directory": "latest/glibc/amd64", + "File": "index.json", + "Builder": "oci-import", + "SOURCE_DATE_EPOCH": 1709081058 + } + ], + "arches": { + "amd64": { + "tags": [ + "busybox:1.36.1", + "busybox:1.36", + "busybox:1", + "busybox:stable", + "busybox:latest", + "busybox:1.36.1-glibc", + "busybox:1.36-glibc", + "busybox:1-glibc", + "busybox:stable-glibc", + "busybox:glibc" + ], + "archTags": [ + "amd64/busybox:1.36.1", + "amd64/busybox:1.36", + "amd64/busybox:1", + "amd64/busybox:stable", + "amd64/busybox:latest", + "amd64/busybox:1.36.1-glibc", + "amd64/busybox:1.36-glibc", + "amd64/busybox:1-glibc", + "amd64/busybox:stable-glibc", + "amd64/busybox:glibc" + ], + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } + ], + "platformString": "linux/amd64", + "platform": { + "architecture": "amd64", + "os": "linux" + }, + "parents": [ + { + "From": "scratch", + "Kind": "FROM", + "sourceId": null, + "pin": null + } + ], + "hostArch": "amd64", + "crossHostArches": null + } + } + }, + "crossHostArches": [], + "identifier": "busybox:1.36.1" + }, + "1019fbd64f243522130484fc95e044917f2e1a8c4e54eac5cff5395dc5fed513": { + "buildId": "1019fbd64f243522130484fc95e044917f2e1a8c4e54eac5cff5395dc5fed513", + "build": { + "img": "oisupport/staging-amd64:1019fbd64f243522130484fc95e044917f2e1a8c4e54eac5cff5395dc5fed513", + "resolved": null, + "sourceId": "525c761d1a8e96f9ec1c499b0dce0ff4f1ed7a8c568f86fcf9f5d3c51e870126", + "arch": "amd64", + "parents": {}, + "resolvedParents": {} + }, + "source": { + "sourceId": "525c761d1a8e96f9ec1c499b0dce0ff4f1ed7a8c568f86fcf9f5d3c51e870126", + "reproducibleGitChecksum": "a3e7286345afcef13f3ddba0d34e7e9de2a490ee1983d193d2c9d7524404195a", + "entries": [ + { + "GitRepo": "https://github.com/docker-library/busybox.git", + "GitFetch": "refs/heads/dist-amd64", + "GitCommit": "d0b7d566eb4f1fa9933984e6fc04ab11f08f4592", + "Directory": "latest/musl/amd64", + "File": "index.json", + "Builder": "oci-import", + "SOURCE_DATE_EPOCH": 1709081058 + } + ], + "arches": { + "amd64": { + "tags": [ + "busybox:1.36.1-musl", + "busybox:1.36-musl", + "busybox:1-musl", + "busybox:stable-musl", + "busybox:musl" + ], + "archTags": [ + "amd64/busybox:1.36.1-musl", + "amd64/busybox:1.36-musl", + "amd64/busybox:1-musl", + "amd64/busybox:stable-musl", + "amd64/busybox:musl" + ], + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } + ], + "platformString": "linux/amd64", + "platform": { + "architecture": "amd64", + "os": "linux" + }, + "parents": [ + { + "From": "scratch", + "Kind": "FROM", + "sourceId": null, + "pin": null + } + ], + "hostArch": "amd64", + "crossHostArches": null + } + } + }, + "crossHostArches": [], + "identifier": "busybox:1.36.1-musl" + }, + "3757191dfdc7a5b6d4de38c0fdd6e9fc1740a367c0bc8a4184bcee3117d648b4": { + "buildId": "3757191dfdc7a5b6d4de38c0fdd6e9fc1740a367c0bc8a4184bcee3117d648b4", + "build": { + "img": "oisupport/staging-amd64:3757191dfdc7a5b6d4de38c0fdd6e9fc1740a367c0bc8a4184bcee3117d648b4", + "resolved": null, + "sourceId": "6a18227ecb1f42bd4755b0843ab3d0752a23b193efb5e9a969b0760ddd19cf8a", + "arch": "amd64", + "parents": {}, + "resolvedParents": {} + }, + "source": { + "sourceId": "6a18227ecb1f42bd4755b0843ab3d0752a23b193efb5e9a969b0760ddd19cf8a", + "reproducibleGitChecksum": "27d63f8ad18605a011ba51ad8d751137ced48cda3bf7b0d57d0b703a5a758d1b", + "entries": [ + { + "GitRepo": "https://github.com/docker-library/busybox.git", + "GitFetch": "refs/heads/dist-amd64", + "GitCommit": "d0b7d566eb4f1fa9933984e6fc04ab11f08f4592", + "Directory": "latest/uclibc/amd64", + "File": "index.json", + "Builder": "oci-import", + "SOURCE_DATE_EPOCH": 1709081058 + } + ], + "arches": { + "amd64": { + "tags": [ + "busybox:1.36.1-uclibc", + "busybox:1.36-uclibc", + "busybox:1-uclibc", + "busybox:stable-uclibc", + "busybox:uclibc" + ], + "archTags": [ + "amd64/busybox:1.36.1-uclibc", + "amd64/busybox:1.36-uclibc", + "amd64/busybox:1-uclibc", + "amd64/busybox:stable-uclibc", + "amd64/busybox:uclibc" + ], + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } + ], + "platformString": "linux/amd64", + "platform": { + "architecture": "amd64", + "os": "linux" + }, + "parents": [ + { + "From": "scratch", + "Kind": "FROM", + "sourceId": null, + "pin": null + } + ], + "hostArch": "amd64", + "crossHostArches": null + } + } + }, + "crossHostArches": [], + "identifier": "busybox:1.36.1-uclibc" + }, + "6848bb9ee30ba17adaf5a00a7a578f18d142cce576a1c43c16bdaefbe44f6727": { + "buildId": "6848bb9ee30ba17adaf5a00a7a578f18d142cce576a1c43c16bdaefbe44f6727", + "build": { + "img": "oisupport/staging-amd64:6848bb9ee30ba17adaf5a00a7a578f18d142cce576a1c43c16bdaefbe44f6727", + "resolved": null, + "sourceId": "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e", + "arch": "amd64", + "parents": { + "golang:1.21": "sha256:e6ba96dde4af9f4e06caba475fa65e94e4c54fe4aa3e9f4f504c02178eb8934e", + "infosiftr/moby:latest": "sha256:6cc5699690d00fe488561cea05f99b5e4fa8e0a86533f348af6d53f5cefefb83" + }, + "resolvedParents": { + "golang:1.21": { + "schemaVersion": 2, + "mediaType": "application/vnd.oci.image.index.v1+json", + "manifests": [ + { + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "digest": "sha256:e6ba96dde4af9f4e06caba475fa65e94e4c54fe4aa3e9f4f504c02178eb8934e", + "size": 2323, + "annotations": { + "com.docker.official-images.bashbrew.arch": "amd64", + "org.opencontainers.image.base.digest": "sha256:5adb33fa5acfa9c961124600941acb92995c6ceb0b082bbac0dbf00c6724cee0", + "org.opencontainers.image.base.name": "buildpack-deps:bookworm-scm", + "org.opencontainers.image.created": "2024-08-13T02:04:45Z", + "org.opencontainers.image.ref.name": "golang:1.21@sha256:e6ba96dde4af9f4e06caba475fa65e94e4c54fe4aa3e9f4f504c02178eb8934e", + "org.opencontainers.image.revision": "aaed3270d35c8a4c8378d72a380890bafffcbec6", + "org.opencontainers.image.source": "https://github.com/docker-library/golang.git#aaed3270d35c8a4c8378d72a380890bafffcbec6:1.21/bookworm", + "org.opencontainers.image.url": "https://hub.docker.com/_/golang", + "org.opencontainers.image.version": "1.21.13-bookworm" + }, + "platform": { + "architecture": "amd64", + "os": "linux" + } + }, + { + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "digest": "sha256:3ebdef0bd69a065dd4a0226d05ce5272c952b02e751850b8364fde34f87c962b", + "size": 842, + "annotations": { + "com.docker.official-images.bashbrew.arch": "amd64", + "org.opencontainers.image.ref.name": "golang:1.21@sha256:3ebdef0bd69a065dd4a0226d05ce5272c952b02e751850b8364fde34f87c962b", + "vnd.docker.reference.digest": "sha256:e6ba96dde4af9f4e06caba475fa65e94e4c54fe4aa3e9f4f504c02178eb8934e", + "vnd.docker.reference.type": "attestation-manifest" + }, + "platform": { + "architecture": "unknown", + "os": "unknown" + } + } + ], + "annotations": { + "org.opencontainers.image.ref.name": "golang:1.21@sha256:4746d26432a9117a5f58e95cb9f954ddf0de128e9d5816886514199316e4a2fb" + } + }, + "infosiftr/moby:latest": { + "schemaVersion": 2, + "mediaType": "application/vnd.oci.image.index.v1+json", + "manifests": [ + { + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "digest": "sha256:6cc5699690d00fe488561cea05f99b5e4fa8e0a86533f348af6d53f5cefefb83", + "size": 3062, + "annotations": { + "com.docker.official-images.bashbrew.arch": "amd64", + "org.opencontainers.image.base.digest": "sha256:38a76d01668772e381ad2826d876627c89e7133e2f8a0f5d567306798b0f2a16", + "org.opencontainers.image.base.name": "debian:trixie-slim", + "org.opencontainers.image.created": "2026-08-05T13:39:51Z", + "org.opencontainers.image.ref.name": "infosiftr/moby:latest@sha256:6cc5699690d00fe488561cea05f99b5e4fa8e0a86533f348af6d53f5cefefb83", + "org.opencontainers.image.revision": "dc881c6dcd338ab8286555023d54fcee8e53e3ac", + "org.opencontainers.image.source": "https://github.com/tianon/dockerfiles.git#dc881c6dcd338ab8286555023d54fcee8e53e3ac:infosiftr-moby", + "org.opencontainers.image.url": "https://hub.docker.com/r/infosiftr/moby", + "org.opencontainers.image.version": "23.0.18" + }, + "platform": { + "architecture": "amd64", + "os": "linux" + } + }, + { + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "digest": "sha256:db323e6e873837f60722d8d3024b520c134ab7f1429f5ca72cbf57820be74331", + "size": 838, + "annotations": { + "com.docker.official-images.bashbrew.arch": "amd64", + "org.opencontainers.image.ref.name": "infosiftr/moby:latest@sha256:db323e6e873837f60722d8d3024b520c134ab7f1429f5ca72cbf57820be74331", + "vnd.docker.reference.digest": "sha256:6cc5699690d00fe488561cea05f99b5e4fa8e0a86533f348af6d53f5cefefb83", + "vnd.docker.reference.type": "attestation-manifest" + }, + "platform": { + "architecture": "unknown", + "os": "unknown" + } + } + ], + "annotations": { + "org.opencontainers.image.ref.name": "infosiftr/moby:latest@sha256:8dd56beee021d11ff3dd629689492a27dc5ee1e61b658c43ebc4730e64d60d8f" + } + } + }, + "hostArch": "amd64", + "crossHostArches": [ + "amd64", + "arm32v7", + "arm64v8", + "i386", + "mips64le", + "ppc64le", + "s390x" + ] + }, + "source": { + "sourceId": "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e", + "reproducibleGitChecksum": "f32e9b7ab78fecd14f065cecec4ea538bafa31f1d46d91ded8b56231c8abc4f8", + "entries": [ + { + "GitRepo": "https://github.com/tianon/dockerfiles.git", + "GitFetch": "refs/heads/master", + "GitCommit": "386636e197ba347441c97db8edcfad9113e41365", + "Directory": "buildkit", + "File": "Dockerfile", + "Builder": "buildkit", + "SOURCE_DATE_EPOCH": 1716334145 + } + ], + "arches": { + "amd64": { + "tags": [ + "buildkit:0.13.2", + "buildkit:0.13", + "buildkit:0", + "buildkit:latest" + ], + "archTags": [ + "amd64/buildkit:0.13.2", + "amd64/buildkit:0.13", + "amd64/buildkit:0", + "amd64/buildkit:latest" + ], + "dockerfileParents": [ + { + "From": "golang:1.21", + "Platform": "$BUILDPLATFORM", + "Kind": "FROM" + }, + { + "From": "infosiftr/moby:latest", + "Kind": "FROM" + } + ], + "platformString": "linux/amd64", + "platform": { + "architecture": "amd64", + "os": "linux" + }, + "parents": [ + { + "From": "golang:1.21", + "Platform": "$BUILDPLATFORM", + "Kind": "FROM", + "sourceId": null, + "pin": null + }, + { + "From": "infosiftr/moby:latest", + "Kind": "FROM", + "sourceId": null, + "pin": null + } + ], + "hostArch": null, + "crossHostArches": null + } + } + }, + "crossHostArches": [], + "identifier": "buildkit:0.13.2" + }, + "832e7b439b1315d060e59f544e86d3531aa402f4256715bce5f19d558a7c6d3d": { + "buildId": "832e7b439b1315d060e59f544e86d3531aa402f4256715bce5f19d558a7c6d3d", + "build": { + "img": "oisupport/staging-amd64:832e7b439b1315d060e59f544e86d3531aa402f4256715bce5f19d558a7c6d3d", + "resolved": null, + "sourceId": "248a27866206a7cffd2764f528bf60c98d80e22d8855e3e47b5ba997b0270a62", + "arch": "amd64", + "parents": { + "debian:bookworm-slim": "sha256:18838d7b60723ec1548a85ae57195bd84a887b65d249f4a74698f1ab7cae4ca3" + }, + "resolvedParents": { + "debian:bookworm-slim": { + "schemaVersion": 2, + "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + "manifests": [ + { + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "digest": "sha256:18838d7b60723ec1548a85ae57195bd84a887b65d249f4a74698f1ab7cae4ca3", + "size": 529, + "annotations": { + "com.docker.official-images.bashbrew.arch": "amd64", + "org.opencontainers.image.ref.name": "debian@sha256:18838d7b60723ec1548a85ae57195bd84a887b65d249f4a74698f1ab7cae4ca3" + }, + "platform": { + "architecture": "amd64", + "os": "linux" + } + } + ], + "annotations": { + "org.opencontainers.image.ref.name": "debian@sha256:155280b00ee0133250f7159b567a07d7cd03b1645714c3a7458b2287b0ca83cb" + } + } + } + }, + "source": { + "sourceId": "248a27866206a7cffd2764f528bf60c98d80e22d8855e3e47b5ba997b0270a62", + "reproducibleGitChecksum": "739b58d3d99cf37800d665f9b11772182af81f3501e7f6ad143f74ffa202b32b", + "entries": [ + { + "GitRepo": "https://github.com/tianon/dockerfiles.git", + "GitFetch": "refs/heads/master", + "GitCommit": "37f1b58c0dc59e6589a0f55849f73d6ef0988cd8", + "Directory": "infosiftr-moby", + "File": "Dockerfile", + "Builder": "", + "SOURCE_DATE_EPOCH": 1709705469 + } + ], + "arches": { + "amd64": { + "tags": [ + "infosiftr-moby:20.10.27", + "infosiftr-moby:20.10", + "infosiftr-moby:20", + "infosiftr-moby:latest", + "infosiftr-moby:amd64" + ], + "archTags": [], + "dockerfileParents": [ + { + "From": "debian:bookworm-slim", + "Kind": "FROM" + } + ], + "platformString": "linux/amd64", + "platform": { + "architecture": "amd64", + "os": "linux" + }, + "parents": [ + { + "From": "debian:bookworm-slim", + "Kind": "FROM", + "sourceId": null, + "pin": "sha256:155280b00ee0133250f7159b567a07d7cd03b1645714c3a7458b2287b0ca83cb" + } + ], + "hostArch": "amd64", + "crossHostArches": null + } + } + }, + "crossHostArches": [], + "identifier": "infosiftr-moby:20.10.27" + } +} +{ + "9b405cfa5b88ba65121aabdb95ae90fd2e1fee7582174de82ae861613ae3072e": { + "buildId": "9b405cfa5b88ba65121aabdb95ae90fd2e1fee7582174de82ae861613ae3072e", + "build": { + "img": "oisupport/staging-windows-amd64:9b405cfa5b88ba65121aabdb95ae90fd2e1fee7582174de82ae861613ae3072e", + "resolved": null, + "sourceId": "fc50de1b0dedf55655271fc22721b7d94e09a12d0e6ff6b76871ba6b808f5984", + "arch": "windows-amd64", + "parents": { + "mcr.microsoft.com/windows/servercore:ltsc2022": "sha256:d4ab2dd7d3d0fce6edc5df459565a4c96bbb1d0148065b215ab5ddcab1e42eb4" + }, + "resolvedParents": { + "mcr.microsoft.com/windows/servercore:ltsc2022": { + "schemaVersion": 2, + "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + "manifests": [ + { + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "digest": "sha256:d4ab2dd7d3d0fce6edc5df459565a4c96bbb1d0148065b215ab5ddcab1e42eb4", + "size": 596, + "annotations": { + "com.docker.official-images.bashbrew.arch": "windows-amd64", + "org.opencontainers.image.ref.name": "mcr.microsoft.com/windows/servercore@sha256:d4ab2dd7d3d0fce6edc5df459565a4c96bbb1d0148065b215ab5ddcab1e42eb4" + }, + "platform": { + "architecture": "amd64", + "os": "windows", + "os.version": "10.0.20348.2113", + "os.features": [ + "win32k" + ] + } + } + ], + "annotations": { + "org.opencontainers.image.ref.name": "mcr.microsoft.com/windows/servercore@sha256:308ef3f8ee3e9c9a1bdec460009c1e6394b329db13eb3149461f8841be5b538a" + } + } + } + }, + "source": { + "sourceId": "fc50de1b0dedf55655271fc22721b7d94e09a12d0e6ff6b76871ba6b808f5984", + "reproducibleGitChecksum": "1711f6dcb5def8e2e6ce88e3a12c24e2dd37bf967a79ae86128c4d45429c0a2c", + "entries": [ + { + "GitRepo": "https://github.com/docker-library/docker.git", + "GitFetch": "refs/heads/master", + "GitCommit": "6d541d27b5dd12639e5a33a675ebca04d3837d74", + "Directory": "24/windows/windowsservercore-ltsc2022", + "File": "Dockerfile", + "Builder": "classic", + "SOURCE_DATE_EPOCH": 1700741054 + } + ], + "arches": { + "windows-amd64": { + "tags": [ + "docker:24.0.7-windowsservercore-ltsc2022", + "docker:24.0-windowsservercore-ltsc2022", + "docker:24-windowsservercore-ltsc2022", + "docker:windowsservercore-ltsc2022", + "docker:24.0.7-windowsservercore", + "docker:24.0-windowsservercore", + "docker:24-windowsservercore", + "docker:windowsservercore" + ], + "archTags": [ + "winamd64/docker:24.0.7-windowsservercore-ltsc2022", + "winamd64/docker:24.0-windowsservercore-ltsc2022", + "winamd64/docker:24-windowsservercore-ltsc2022", + "winamd64/docker:windowsservercore-ltsc2022", + "winamd64/docker:24.0.7-windowsservercore", + "winamd64/docker:24.0-windowsservercore", + "winamd64/docker:24-windowsservercore", + "winamd64/docker:windowsservercore" + ], + "dockerfileParents": [ + { + "From": "mcr.microsoft.com/windows/servercore:ltsc2022", + "Kind": "FROM" + } + ], + "platformString": "windows/amd64", + "platform": { + "architecture": "amd64", + "os": "windows" + }, + "parents": [ + { + "From": "mcr.microsoft.com/windows/servercore:ltsc2022", + "Kind": "FROM", + "sourceId": null, + "pin": "sha256:308ef3f8ee3e9c9a1bdec460009c1e6394b329db13eb3149461f8841be5b538a" + } + ], + "hostArch": "windows-amd64", + "crossHostArches": null + } + } + }, + "windowsVersion": "2022", + "crossHostArches": [], + "identifier": "docker:24.0.7-windowsservercore-ltsc2022" + }, + "5efe68ed819e46db05a9b50e99c758feaf96df829939aca311b55e42df521acf": { + "buildId": "5efe68ed819e46db05a9b50e99c758feaf96df829939aca311b55e42df521acf", + "build": { + "img": "oisupport/staging-windows-amd64:5efe68ed819e46db05a9b50e99c758feaf96df829939aca311b55e42df521acf", + "resolved": null, + "sourceId": "10083d7e3bfbe4f9bdb3e38e4846b88d0bea1896caca9ef70de6478b3c20fe9a", + "arch": "windows-amd64", + "parents": { + "mcr.microsoft.com/windows/servercore:1809": "sha256:603e3b4f1d0d2565ad4945575a9fb5cd6b90cb6b4981fe551de509f09853ffc5" + }, + "resolvedParents": { + "mcr.microsoft.com/windows/servercore:1809": { + "schemaVersion": 2, + "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + "manifests": [ + { + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "digest": "sha256:603e3b4f1d0d2565ad4945575a9fb5cd6b90cb6b4981fe551de509f09853ffc5", + "size": 596, + "annotations": { + "com.docker.official-images.bashbrew.arch": "windows-amd64", + "org.opencontainers.image.ref.name": "mcr.microsoft.com/windows/servercore@sha256:603e3b4f1d0d2565ad4945575a9fb5cd6b90cb6b4981fe551de509f09853ffc5" + }, + "platform": { + "architecture": "amd64", + "os": "windows", + "os.version": "10.0.17763.5122", + "os.features": [ + "win32k" + ] + } + } + ], + "annotations": { + "org.opencontainers.image.ref.name": "mcr.microsoft.com/windows/servercore@sha256:4fe58f25a157ea749c7b770acebfdbd70c3cb2088c446943e90fe89ea059558b" + } + } + } + }, + "source": { + "sourceId": "10083d7e3bfbe4f9bdb3e38e4846b88d0bea1896caca9ef70de6478b3c20fe9a", + "reproducibleGitChecksum": "40dcbc9e7a451cfc7f2bd12400074f3f21bc6c0331e249019623aeb617d18747", + "entries": [ + { + "GitRepo": "https://github.com/docker-library/docker.git", + "GitFetch": "refs/heads/master", + "GitCommit": "6d541d27b5dd12639e5a33a675ebca04d3837d74", + "Directory": "24/windows/windowsservercore-1809", + "File": "Dockerfile", + "Builder": "classic", + "SOURCE_DATE_EPOCH": 1700741054 + } + ], + "arches": { + "windows-amd64": { + "tags": [ + "docker:24.0.7-windowsservercore-1809", + "docker:24.0-windowsservercore-1809", + "docker:24-windowsservercore-1809", + "docker:windowsservercore-1809", + "docker:24.0.7-windowsservercore", + "docker:24.0-windowsservercore", + "docker:24-windowsservercore", + "docker:windowsservercore" + ], + "archTags": [ + "winamd64/docker:24.0.7-windowsservercore-1809", + "winamd64/docker:24.0-windowsservercore-1809", + "winamd64/docker:24-windowsservercore-1809", + "winamd64/docker:windowsservercore-1809", + "winamd64/docker:24.0.7-windowsservercore", + "winamd64/docker:24.0-windowsservercore", + "winamd64/docker:24-windowsservercore", + "winamd64/docker:windowsservercore" + ], + "dockerfileParents": [ + { + "From": "mcr.microsoft.com/windows/servercore:1809", + "Kind": "FROM" + } + ], + "platformString": "windows/amd64", + "platform": { + "architecture": "amd64", + "os": "windows" + }, + "parents": [ + { + "From": "mcr.microsoft.com/windows/servercore:1809", + "Kind": "FROM", + "sourceId": null, + "pin": "sha256:4fe58f25a157ea749c7b770acebfdbd70c3cb2088c446943e90fe89ea059558b" + } + ], + "hostArch": "windows-amd64", + "crossHostArches": null + } + } + }, + "windowsVersion": "2019", + "crossHostArches": [], + "identifier": "docker:24.0.7-windowsservercore-1809" + } +} diff --git a/.test/arch-queue/test.jq b/.test/arch-queue/test.jq new file mode 100644 index 0000000..5b0ca92 --- /dev/null +++ b/.test/arch-queue/test.jq @@ -0,0 +1,5 @@ +include "jenkins"; + +# force every build to look like it still needs to happen, so we exercise the full "get_arch_queue" annotation logic (cross, windowsVersion) against real data instead of synthetic fixtures +.[].build.resolved = null +| get_arch_queue("amd64", "windows-amd64") diff --git a/.test/builds.json b/.test/builds.json index 8fb6025..c4ace06 100644 --- a/.test/builds.json +++ b/.test/builds.json @@ -104,21 +104,27 @@ "amd64/docker:cli", "amd64/docker:24.0.7-cli-alpine3.18" ], - "froms": [ - "alpine:3.18" + "dockerfileParents": [ + { + "From": "alpine:3.18", + "Kind": "FROM" + } ], - "lastStageFrom": "alpine:3.18", "platformString": "linux/amd64", "platform": { "architecture": "amd64", "os": "linux" }, - "parents": { - "alpine:3.18": { + "parents": [ + { + "From": "alpine:3.18", + "Kind": "FROM", "sourceId": null, "pin": "sha256:34871e7290500828b39e22294660bee86d966bc0017544e848dd9a255cdf59e0" } - } + ], + "hostArch": "amd64", + "crossHostArches": null } } } @@ -211,22 +217,28 @@ "arm32v6/docker:cli", "arm32v6/docker:24.0.7-cli-alpine3.18" ], - "froms": [ - "alpine:3.18" + "dockerfileParents": [ + { + "From": "alpine:3.18", + "Kind": "FROM" + } ], - "lastStageFrom": "alpine:3.18", "platformString": "linux/arm/v6", "platform": { "architecture": "arm", "os": "linux", "variant": "v6" }, - "parents": { - "alpine:3.18": { + "parents": [ + { + "From": "alpine:3.18", + "Kind": "FROM", "sourceId": null, "pin": "sha256:34871e7290500828b39e22294660bee86d966bc0017544e848dd9a255cdf59e0" } - } + ], + "hostArch": "arm32v6", + "crossHostArches": null } } } @@ -338,22 +350,28 @@ "arm32v7/docker:cli", "arm32v7/docker:24.0.7-cli-alpine3.18" ], - "froms": [ - "alpine:3.18" + "dockerfileParents": [ + { + "From": "alpine:3.18", + "Kind": "FROM" + } ], - "lastStageFrom": "alpine:3.18", "platformString": "linux/arm/v7", "platform": { "architecture": "arm", "os": "linux", "variant": "v7" }, - "parents": { - "alpine:3.18": { + "parents": [ + { + "From": "alpine:3.18", + "Kind": "FROM", "sourceId": null, "pin": "sha256:34871e7290500828b39e22294660bee86d966bc0017544e848dd9a255cdf59e0" } - } + ], + "hostArch": "arm32v7", + "crossHostArches": null } } } @@ -465,22 +483,28 @@ "arm64v8/docker:cli", "arm64v8/docker:24.0.7-cli-alpine3.18" ], - "froms": [ - "alpine:3.18" + "dockerfileParents": [ + { + "From": "alpine:3.18", + "Kind": "FROM" + } ], - "lastStageFrom": "alpine:3.18", "platformString": "linux/arm64/v8", "platform": { "architecture": "arm64", "os": "linux", "variant": "v8" }, - "parents": { - "alpine:3.18": { + "parents": [ + { + "From": "alpine:3.18", + "Kind": "FROM", "sourceId": null, "pin": "sha256:34871e7290500828b39e22294660bee86d966bc0017544e848dd9a255cdf59e0" } - } + ], + "hostArch": "arm64v8", + "crossHostArches": null } } } @@ -619,21 +643,27 @@ "amd64/docker:latest", "amd64/docker:24.0.7-alpine3.18" ], - "froms": [ - "docker:24-cli" + "dockerfileParents": [ + { + "From": "docker:24-cli", + "Kind": "FROM" + } ], - "lastStageFrom": "docker:24-cli", "platformString": "linux/amd64", "platform": { "architecture": "amd64", "os": "linux" }, - "parents": { - "docker:24-cli": { + "parents": [ + { + "From": "docker:24-cli", + "Kind": "FROM", "sourceId": "76d7d7d66aeb62eb797c8475407e6cd2b6ad262957a622035f81fb93e532b36b", "pin": null } - } + ], + "hostArch": "amd64", + "crossHostArches": null } } } @@ -736,22 +766,28 @@ "arm32v6/docker:latest", "arm32v6/docker:24.0.7-alpine3.18" ], - "froms": [ - "docker:24-cli" + "dockerfileParents": [ + { + "From": "docker:24-cli", + "Kind": "FROM" + } ], - "lastStageFrom": "docker:24-cli", "platformString": "linux/arm/v6", "platform": { "architecture": "arm", "os": "linux", "variant": "v6" }, - "parents": { - "docker:24-cli": { + "parents": [ + { + "From": "docker:24-cli", + "Kind": "FROM", "sourceId": "76d7d7d66aeb62eb797c8475407e6cd2b6ad262957a622035f81fb93e532b36b", "pin": null } - } + ], + "hostArch": "arm32v6", + "crossHostArches": null } } } @@ -892,22 +928,28 @@ "arm32v7/docker:latest", "arm32v7/docker:24.0.7-alpine3.18" ], - "froms": [ - "docker:24-cli" + "dockerfileParents": [ + { + "From": "docker:24-cli", + "Kind": "FROM" + } ], - "lastStageFrom": "docker:24-cli", "platformString": "linux/arm/v7", "platform": { "architecture": "arm", "os": "linux", "variant": "v7" }, - "parents": { - "docker:24-cli": { + "parents": [ + { + "From": "docker:24-cli", + "Kind": "FROM", "sourceId": "76d7d7d66aeb62eb797c8475407e6cd2b6ad262957a622035f81fb93e532b36b", "pin": null } - } + ], + "hostArch": "arm32v7", + "crossHostArches": null } } } @@ -1048,22 +1090,28 @@ "arm64v8/docker:latest", "arm64v8/docker:24.0.7-alpine3.18" ], - "froms": [ - "docker:24-cli" + "dockerfileParents": [ + { + "From": "docker:24-cli", + "Kind": "FROM" + } ], - "lastStageFrom": "docker:24-cli", "platformString": "linux/arm64/v8", "platform": { "architecture": "arm64", "os": "linux", "variant": "v8" }, - "parents": { - "docker:24-cli": { + "parents": [ + { + "From": "docker:24-cli", + "Kind": "FROM", "sourceId": "76d7d7d66aeb62eb797c8475407e6cd2b6ad262957a622035f81fb93e532b36b", "pin": null } - } + ], + "hostArch": "arm64v8", + "crossHostArches": null } } } @@ -1165,21 +1213,27 @@ "winamd64/docker:24-windowsservercore", "winamd64/docker:windowsservercore" ], - "froms": [ - "mcr.microsoft.com/windows/servercore:ltsc2022" + "dockerfileParents": [ + { + "From": "mcr.microsoft.com/windows/servercore:ltsc2022", + "Kind": "FROM" + } ], - "lastStageFrom": "mcr.microsoft.com/windows/servercore:ltsc2022", "platformString": "windows/amd64", "platform": { "architecture": "amd64", "os": "windows" }, - "parents": { - "mcr.microsoft.com/windows/servercore:ltsc2022": { + "parents": [ + { + "From": "mcr.microsoft.com/windows/servercore:ltsc2022", + "Kind": "FROM", "sourceId": null, "pin": "sha256:308ef3f8ee3e9c9a1bdec460009c1e6394b329db13eb3149461f8841be5b538a" } - } + ], + "hostArch": "windows-amd64", + "crossHostArches": null } } } @@ -1281,21 +1335,27 @@ "winamd64/docker:24-windowsservercore", "winamd64/docker:windowsservercore" ], - "froms": [ - "mcr.microsoft.com/windows/servercore:1809" + "dockerfileParents": [ + { + "From": "mcr.microsoft.com/windows/servercore:1809", + "Kind": "FROM" + } ], - "lastStageFrom": "mcr.microsoft.com/windows/servercore:1809", "platformString": "windows/amd64", "platform": { "architecture": "amd64", "os": "windows" }, - "parents": { - "mcr.microsoft.com/windows/servercore:1809": { + "parents": [ + { + "From": "mcr.microsoft.com/windows/servercore:1809", + "Kind": "FROM", "sourceId": null, "pin": "sha256:4fe58f25a157ea749c7b770acebfdbd70c3cb2088c446943e90fe89ea059558b" } - } + ], + "hostArch": "windows-amd64", + "crossHostArches": null } } } @@ -1422,27 +1482,37 @@ "amd64/notary:server-0.7.0", "amd64/notary:server" ], - "froms": [ - "golang:1.19-alpine3.16", - "alpine:3.16", - "golang:1.19-alpine3.16" + "dockerfileParents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM" + }, + { + "From": "alpine:3.16", + "Kind": "FROM" + } ], - "lastStageFrom": "alpine:3.16", "platformString": "linux/amd64", "platform": { "architecture": "amd64", "os": "linux" }, - "parents": { - "golang:1.19-alpine3.16": { + "parents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM", "sourceId": null, "pin": null }, - "alpine:3.16": { + { + "From": "alpine:3.16", + "Kind": "FROM", "sourceId": null, "pin": "sha256:e4cdb7d47b06ba0a062ad2a97a7d154967c8f83934594d9f2bd3efa89292996b" } - } + ], + "hostArch": "amd64", + "crossHostArches": null } } } @@ -1553,28 +1623,38 @@ "arm32v6/notary:server-0.7.0", "arm32v6/notary:server" ], - "froms": [ - "golang:1.19-alpine3.16", - "alpine:3.16", - "golang:1.19-alpine3.16" + "dockerfileParents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM" + }, + { + "From": "alpine:3.16", + "Kind": "FROM" + } ], - "lastStageFrom": "alpine:3.16", "platformString": "linux/arm/v6", "platform": { "architecture": "arm", "os": "linux", "variant": "v6" }, - "parents": { - "golang:1.19-alpine3.16": { + "parents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM", "sourceId": null, "pin": null }, - "alpine:3.16": { + { + "From": "alpine:3.16", + "Kind": "FROM", "sourceId": null, "pin": "sha256:e4cdb7d47b06ba0a062ad2a97a7d154967c8f83934594d9f2bd3efa89292996b" } - } + ], + "hostArch": "arm32v6", + "crossHostArches": null } } } @@ -1704,28 +1784,38 @@ "arm64v8/notary:server-0.7.0", "arm64v8/notary:server" ], - "froms": [ - "golang:1.19-alpine3.16", - "alpine:3.16", - "golang:1.19-alpine3.16" + "dockerfileParents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM" + }, + { + "From": "alpine:3.16", + "Kind": "FROM" + } ], - "lastStageFrom": "alpine:3.16", "platformString": "linux/arm64/v8", "platform": { "architecture": "arm64", "os": "linux", "variant": "v8" }, - "parents": { - "golang:1.19-alpine3.16": { + "parents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM", "sourceId": null, "pin": null }, - "alpine:3.16": { + { + "From": "alpine:3.16", + "Kind": "FROM", "sourceId": null, "pin": "sha256:e4cdb7d47b06ba0a062ad2a97a7d154967c8f83934594d9f2bd3efa89292996b" } - } + ], + "hostArch": "arm64v8", + "crossHostArches": null } } } @@ -1852,27 +1942,37 @@ "i386/notary:server-0.7.0", "i386/notary:server" ], - "froms": [ - "golang:1.19-alpine3.16", - "alpine:3.16", - "golang:1.19-alpine3.16" + "dockerfileParents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM" + }, + { + "From": "alpine:3.16", + "Kind": "FROM" + } ], - "lastStageFrom": "alpine:3.16", "platformString": "linux/386", "platform": { "architecture": "386", "os": "linux" }, - "parents": { - "golang:1.19-alpine3.16": { + "parents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM", "sourceId": null, "pin": null }, - "alpine:3.16": { + { + "From": "alpine:3.16", + "Kind": "FROM", "sourceId": null, "pin": "sha256:e4cdb7d47b06ba0a062ad2a97a7d154967c8f83934594d9f2bd3efa89292996b" } - } + ], + "hostArch": "i386", + "crossHostArches": null } } } @@ -1999,27 +2099,37 @@ "ppc64le/notary:server-0.7.0", "ppc64le/notary:server" ], - "froms": [ - "golang:1.19-alpine3.16", - "alpine:3.16", - "golang:1.19-alpine3.16" + "dockerfileParents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM" + }, + { + "From": "alpine:3.16", + "Kind": "FROM" + } ], - "lastStageFrom": "alpine:3.16", "platformString": "linux/ppc64le", "platform": { "architecture": "ppc64le", "os": "linux" }, - "parents": { - "golang:1.19-alpine3.16": { + "parents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM", "sourceId": null, "pin": null }, - "alpine:3.16": { + { + "From": "alpine:3.16", + "Kind": "FROM", "sourceId": null, "pin": "sha256:e4cdb7d47b06ba0a062ad2a97a7d154967c8f83934594d9f2bd3efa89292996b" } - } + ], + "hostArch": "ppc64le", + "crossHostArches": null } } } @@ -2146,27 +2256,37 @@ "s390x/notary:server-0.7.0", "s390x/notary:server" ], - "froms": [ - "golang:1.19-alpine3.16", - "alpine:3.16", - "golang:1.19-alpine3.16" + "dockerfileParents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM" + }, + { + "From": "alpine:3.16", + "Kind": "FROM" + } ], - "lastStageFrom": "alpine:3.16", "platformString": "linux/s390x", "platform": { "architecture": "s390x", "os": "linux" }, - "parents": { - "golang:1.19-alpine3.16": { + "parents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM", "sourceId": null, "pin": null }, - "alpine:3.16": { + { + "From": "alpine:3.16", + "Kind": "FROM", "sourceId": null, "pin": "sha256:e4cdb7d47b06ba0a062ad2a97a7d154967c8f83934594d9f2bd3efa89292996b" } - } + ], + "hostArch": "s390x", + "crossHostArches": null } } } @@ -2293,27 +2413,37 @@ "amd64/notary:signer-0.7.0", "amd64/notary:signer" ], - "froms": [ - "golang:1.19-alpine3.16", - "alpine:3.16", - "golang:1.19-alpine3.16" + "dockerfileParents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM" + }, + { + "From": "alpine:3.16", + "Kind": "FROM" + } ], - "lastStageFrom": "alpine:3.16", "platformString": "linux/amd64", "platform": { "architecture": "amd64", "os": "linux" }, - "parents": { - "golang:1.19-alpine3.16": { + "parents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM", "sourceId": null, "pin": null }, - "alpine:3.16": { + { + "From": "alpine:3.16", + "Kind": "FROM", "sourceId": null, "pin": "sha256:e4cdb7d47b06ba0a062ad2a97a7d154967c8f83934594d9f2bd3efa89292996b" } - } + ], + "hostArch": "amd64", + "crossHostArches": null } } } @@ -2424,28 +2554,38 @@ "arm32v6/notary:signer-0.7.0", "arm32v6/notary:signer" ], - "froms": [ - "golang:1.19-alpine3.16", - "alpine:3.16", - "golang:1.19-alpine3.16" + "dockerfileParents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM" + }, + { + "From": "alpine:3.16", + "Kind": "FROM" + } ], - "lastStageFrom": "alpine:3.16", "platformString": "linux/arm/v6", "platform": { "architecture": "arm", "os": "linux", "variant": "v6" }, - "parents": { - "golang:1.19-alpine3.16": { + "parents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM", "sourceId": null, "pin": null }, - "alpine:3.16": { + { + "From": "alpine:3.16", + "Kind": "FROM", "sourceId": null, "pin": "sha256:e4cdb7d47b06ba0a062ad2a97a7d154967c8f83934594d9f2bd3efa89292996b" } - } + ], + "hostArch": "arm32v6", + "crossHostArches": null } } } @@ -2575,28 +2715,38 @@ "arm64v8/notary:signer-0.7.0", "arm64v8/notary:signer" ], - "froms": [ - "golang:1.19-alpine3.16", - "alpine:3.16", - "golang:1.19-alpine3.16" + "dockerfileParents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM" + }, + { + "From": "alpine:3.16", + "Kind": "FROM" + } ], - "lastStageFrom": "alpine:3.16", "platformString": "linux/arm64/v8", "platform": { "architecture": "arm64", "os": "linux", "variant": "v8" }, - "parents": { - "golang:1.19-alpine3.16": { + "parents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM", "sourceId": null, "pin": null }, - "alpine:3.16": { + { + "From": "alpine:3.16", + "Kind": "FROM", "sourceId": null, "pin": "sha256:e4cdb7d47b06ba0a062ad2a97a7d154967c8f83934594d9f2bd3efa89292996b" } - } + ], + "hostArch": "arm64v8", + "crossHostArches": null } } } @@ -2723,27 +2873,37 @@ "i386/notary:signer-0.7.0", "i386/notary:signer" ], - "froms": [ - "golang:1.19-alpine3.16", - "alpine:3.16", - "golang:1.19-alpine3.16" + "dockerfileParents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM" + }, + { + "From": "alpine:3.16", + "Kind": "FROM" + } ], - "lastStageFrom": "alpine:3.16", "platformString": "linux/386", "platform": { "architecture": "386", "os": "linux" }, - "parents": { - "golang:1.19-alpine3.16": { + "parents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM", "sourceId": null, "pin": null }, - "alpine:3.16": { + { + "From": "alpine:3.16", + "Kind": "FROM", "sourceId": null, "pin": "sha256:e4cdb7d47b06ba0a062ad2a97a7d154967c8f83934594d9f2bd3efa89292996b" } - } + ], + "hostArch": "i386", + "crossHostArches": null } } } @@ -2870,27 +3030,37 @@ "ppc64le/notary:signer-0.7.0", "ppc64le/notary:signer" ], - "froms": [ - "golang:1.19-alpine3.16", - "alpine:3.16", - "golang:1.19-alpine3.16" + "dockerfileParents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM" + }, + { + "From": "alpine:3.16", + "Kind": "FROM" + } ], - "lastStageFrom": "alpine:3.16", "platformString": "linux/ppc64le", "platform": { "architecture": "ppc64le", "os": "linux" }, - "parents": { - "golang:1.19-alpine3.16": { + "parents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM", "sourceId": null, "pin": null }, - "alpine:3.16": { + { + "From": "alpine:3.16", + "Kind": "FROM", "sourceId": null, "pin": "sha256:e4cdb7d47b06ba0a062ad2a97a7d154967c8f83934594d9f2bd3efa89292996b" } - } + ], + "hostArch": "ppc64le", + "crossHostArches": null } } } @@ -3017,27 +3187,37 @@ "s390x/notary:signer-0.7.0", "s390x/notary:signer" ], - "froms": [ - "golang:1.19-alpine3.16", - "alpine:3.16", - "golang:1.19-alpine3.16" + "dockerfileParents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM" + }, + { + "From": "alpine:3.16", + "Kind": "FROM" + } ], - "lastStageFrom": "alpine:3.16", "platformString": "linux/s390x", "platform": { "architecture": "s390x", "os": "linux" }, - "parents": { - "golang:1.19-alpine3.16": { + "parents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM", "sourceId": null, "pin": null }, - "alpine:3.16": { + { + "From": "alpine:3.16", + "Kind": "FROM", "sourceId": null, "pin": "sha256:e4cdb7d47b06ba0a062ad2a97a7d154967c8f83934594d9f2bd3efa89292996b" } - } + ], + "hostArch": "s390x", + "crossHostArches": null } } } @@ -3119,21 +3299,27 @@ "amd64/busybox:stable-glibc", "amd64/busybox:glibc" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/amd64", "platform": { "architecture": "amd64", "os": "linux" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "amd64", + "crossHostArches": null } } } @@ -3216,22 +3402,28 @@ "arm32v5/busybox:stable-glibc", "arm32v5/busybox:glibc" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/arm/v5", "platform": { "architecture": "arm", "os": "linux", "variant": "v5" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "arm32v5", + "crossHostArches": null } } } @@ -3314,22 +3506,28 @@ "arm32v6/busybox:stable-musl", "arm32v6/busybox:musl" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/arm/v6", "platform": { "architecture": "arm", "os": "linux", "variant": "v6" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "arm32v6", + "crossHostArches": null } } } @@ -3412,22 +3610,28 @@ "arm32v7/busybox:stable-glibc", "arm32v7/busybox:glibc" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/arm/v7", "platform": { "architecture": "arm", "os": "linux", "variant": "v7" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "arm32v7", + "crossHostArches": null } } } @@ -3510,22 +3714,28 @@ "arm64v8/busybox:stable-glibc", "arm64v8/busybox:glibc" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/arm64/v8", "platform": { "architecture": "arm64", "os": "linux", "variant": "v8" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "arm64v8", + "crossHostArches": null } } } @@ -3607,21 +3817,27 @@ "i386/busybox:stable-glibc", "i386/busybox:glibc" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/386", "platform": { "architecture": "386", "os": "linux" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "i386", + "crossHostArches": null } } } @@ -3703,21 +3919,27 @@ "mips64le/busybox:stable-glibc", "mips64le/busybox:glibc" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/mips64le", "platform": { "architecture": "mips64le", "os": "linux" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "mips64le", + "crossHostArches": null } } } @@ -3799,21 +4021,27 @@ "ppc64le/busybox:stable-glibc", "ppc64le/busybox:glibc" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/ppc64le", "platform": { "architecture": "ppc64le", "os": "linux" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "ppc64le", + "crossHostArches": null } } } @@ -3895,21 +4123,27 @@ "riscv64/busybox:stable-uclibc", "riscv64/busybox:uclibc" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/riscv64", "platform": { "architecture": "riscv64", "os": "linux" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "riscv64", + "crossHostArches": null } } } @@ -3991,21 +4225,27 @@ "s390x/busybox:stable-glibc", "s390x/busybox:glibc" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/s390x", "platform": { "architecture": "s390x", "os": "linux" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "s390x", + "crossHostArches": null } } } @@ -4077,21 +4317,27 @@ "riscv64/busybox:stable-glibc", "riscv64/busybox:glibc" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/riscv64", "platform": { "architecture": "riscv64", "os": "linux" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "riscv64", + "crossHostArches": null } } } @@ -4163,21 +4409,27 @@ "amd64/busybox:stable-musl", "amd64/busybox:musl" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/amd64", "platform": { "architecture": "amd64", "os": "linux" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "amd64", + "crossHostArches": null } } } @@ -4250,22 +4502,28 @@ "arm32v7/busybox:stable-musl", "arm32v7/busybox:musl" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/arm/v7", "platform": { "architecture": "arm", "os": "linux", "variant": "v7" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "arm32v7", + "crossHostArches": null } } } @@ -4338,22 +4596,28 @@ "arm64v8/busybox:stable-musl", "arm64v8/busybox:musl" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/arm64/v8", "platform": { "architecture": "arm64", "os": "linux", "variant": "v8" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "arm64v8", + "crossHostArches": null } } } @@ -4425,21 +4689,27 @@ "i386/busybox:stable-musl", "i386/busybox:musl" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/386", "platform": { "architecture": "386", "os": "linux" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "i386", + "crossHostArches": null } } } @@ -4511,21 +4781,27 @@ "ppc64le/busybox:stable-musl", "ppc64le/busybox:musl" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/ppc64le", "platform": { "architecture": "ppc64le", "os": "linux" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "ppc64le", + "crossHostArches": null } } } @@ -4597,21 +4873,27 @@ "riscv64/busybox:stable-musl", "riscv64/busybox:musl" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/riscv64", "platform": { "architecture": "riscv64", "os": "linux" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "riscv64", + "crossHostArches": null } } } @@ -4683,21 +4965,27 @@ "s390x/busybox:stable-musl", "s390x/busybox:musl" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/s390x", "platform": { "architecture": "s390x", "os": "linux" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "s390x", + "crossHostArches": null } } } @@ -4769,21 +5057,27 @@ "amd64/busybox:stable-uclibc", "amd64/busybox:uclibc" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/amd64", "platform": { "architecture": "amd64", "os": "linux" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "amd64", + "crossHostArches": null } } } @@ -4856,22 +5150,28 @@ "arm32v5/busybox:stable-uclibc", "arm32v5/busybox:uclibc" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/arm/v5", "platform": { "architecture": "arm", "os": "linux", "variant": "v5" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "arm32v5", + "crossHostArches": null } } } @@ -4944,22 +5244,28 @@ "arm32v7/busybox:stable-uclibc", "arm32v7/busybox:uclibc" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/arm/v7", "platform": { "architecture": "arm", "os": "linux", "variant": "v7" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "arm32v7", + "crossHostArches": null } } } @@ -5032,22 +5338,28 @@ "arm64v8/busybox:stable-uclibc", "arm64v8/busybox:uclibc" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/arm64/v8", "platform": { "architecture": "arm64", "os": "linux", "variant": "v8" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "arm64v8", + "crossHostArches": null } } } @@ -5119,107 +5431,1543 @@ "i386/busybox:stable-uclibc", "i386/busybox:uclibc" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } + ], + "platformString": "linux/386", + "platform": { + "architecture": "386", + "os": "linux" + }, + "parents": [ + { + "From": "scratch", + "Kind": "FROM", + "sourceId": null, + "pin": null + } + ], + "hostArch": "i386", + "crossHostArches": null + } + } + } + }, + "768f1edc30be691acf862ef51ac671aea25b9cd46242ab8b30f04715991dffa1": { + "buildId": "768f1edc30be691acf862ef51ac671aea25b9cd46242ab8b30f04715991dffa1", + "build": { + "img": "oisupport/staging-mips64le:768f1edc30be691acf862ef51ac671aea25b9cd46242ab8b30f04715991dffa1", + "resolved": { + "schemaVersion": 2, + "mediaType": "application/vnd.oci.image.index.v1+json", + "manifests": [ + { + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "digest": "sha256:388eed10bf5614e88ae1e2b2c1d237cbef877a07858125415556e3d9edff526d", + "size": 610, + "annotations": { + "com.docker.official-images.bashbrew.arch": "mips64le", + "org.opencontainers.image.base.name": "scratch", + "org.opencontainers.image.created": "2024-02-28T00:44:18Z", + "org.opencontainers.image.ref.name": "oisupport/staging-mips64le:768f1edc30be691acf862ef51ac671aea25b9cd46242ab8b30f04715991dffa1@sha256:388eed10bf5614e88ae1e2b2c1d237cbef877a07858125415556e3d9edff526d", + "org.opencontainers.image.revision": "ea5639e7af6b21b81230ccaba4c05ccb2d80b9e3", + "org.opencontainers.image.source": "https://github.com/docker-library/busybox.git", + "org.opencontainers.image.url": "https://hub.docker.com/_/busybox", + "org.opencontainers.image.version": "1.36.1-uclibc" + }, + "platform": { + "architecture": "mips64le", + "os": "linux" + } + } + ], + "annotations": { + "org.opencontainers.image.ref.name": "oisupport/staging-mips64le:768f1edc30be691acf862ef51ac671aea25b9cd46242ab8b30f04715991dffa1@sha256:8250f61862e1d6ea51f35f443b15491e707c1cb3cbef76219ad1a2de424b22b2" + } + }, + "sourceId": "b0bb94feb28087aee21e4a4c0b9cd51b0ba4737c166033e34fa245433b0f7447", + "arch": "mips64le", + "parents": {}, + "resolvedParents": {} + }, + "source": { + "sourceId": "b0bb94feb28087aee21e4a4c0b9cd51b0ba4737c166033e34fa245433b0f7447", + "reproducibleGitChecksum": "acfeadf772789a80427f642691efcb0daeeabe73ce4753318f25760c3ead6e18", + "entries": [ + { + "GitRepo": "https://github.com/docker-library/busybox.git", + "GitFetch": "refs/heads/dist-mips64le", + "GitCommit": "ea5639e7af6b21b81230ccaba4c05ccb2d80b9e3", + "Directory": "latest/uclibc/mips64le", + "File": "index.json", + "Builder": "oci-import", + "SOURCE_DATE_EPOCH": 1709081058 + } + ], + "arches": { + "mips64le": { + "tags": [ + "busybox:1.36.1-uclibc", + "busybox:1.36-uclibc", + "busybox:1-uclibc", + "busybox:stable-uclibc", + "busybox:uclibc" + ], + "archTags": [ + "mips64le/busybox:1.36.1-uclibc", + "mips64le/busybox:1.36-uclibc", + "mips64le/busybox:1-uclibc", + "mips64le/busybox:stable-uclibc", + "mips64le/busybox:uclibc" + ], + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } + ], + "platformString": "linux/mips64le", + "platform": { + "architecture": "mips64le", + "os": "linux" + }, + "parents": [ + { + "From": "scratch", + "Kind": "FROM", + "sourceId": null, + "pin": null + } + ], + "hostArch": "mips64le", + "crossHostArches": null + } + } + } + }, + "6848bb9ee30ba17adaf5a00a7a578f18d142cce576a1c43c16bdaefbe44f6727": { + "buildId": "6848bb9ee30ba17adaf5a00a7a578f18d142cce576a1c43c16bdaefbe44f6727", + "build": { + "img": "oisupport/staging-amd64:6848bb9ee30ba17adaf5a00a7a578f18d142cce576a1c43c16bdaefbe44f6727", + "resolved": null, + "sourceId": "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e", + "arch": "amd64", + "parents": { + "golang:1.21": "sha256:e6ba96dde4af9f4e06caba475fa65e94e4c54fe4aa3e9f4f504c02178eb8934e", + "infosiftr/moby:latest": "sha256:6cc5699690d00fe488561cea05f99b5e4fa8e0a86533f348af6d53f5cefefb83" + }, + "resolvedParents": { + "golang:1.21": { + "schemaVersion": 2, + "mediaType": "application/vnd.oci.image.index.v1+json", + "manifests": [ + { + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "digest": "sha256:e6ba96dde4af9f4e06caba475fa65e94e4c54fe4aa3e9f4f504c02178eb8934e", + "size": 2323, + "annotations": { + "com.docker.official-images.bashbrew.arch": "amd64", + "org.opencontainers.image.base.digest": "sha256:5adb33fa5acfa9c961124600941acb92995c6ceb0b082bbac0dbf00c6724cee0", + "org.opencontainers.image.base.name": "buildpack-deps:bookworm-scm", + "org.opencontainers.image.created": "2024-08-13T02:04:45Z", + "org.opencontainers.image.ref.name": "golang:1.21@sha256:e6ba96dde4af9f4e06caba475fa65e94e4c54fe4aa3e9f4f504c02178eb8934e", + "org.opencontainers.image.revision": "aaed3270d35c8a4c8378d72a380890bafffcbec6", + "org.opencontainers.image.source": "https://github.com/docker-library/golang.git#aaed3270d35c8a4c8378d72a380890bafffcbec6:1.21/bookworm", + "org.opencontainers.image.url": "https://hub.docker.com/_/golang", + "org.opencontainers.image.version": "1.21.13-bookworm" + }, + "platform": { + "architecture": "amd64", + "os": "linux" + } + }, + { + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "digest": "sha256:3ebdef0bd69a065dd4a0226d05ce5272c952b02e751850b8364fde34f87c962b", + "size": 842, + "annotations": { + "com.docker.official-images.bashbrew.arch": "amd64", + "org.opencontainers.image.ref.name": "golang:1.21@sha256:3ebdef0bd69a065dd4a0226d05ce5272c952b02e751850b8364fde34f87c962b", + "vnd.docker.reference.digest": "sha256:e6ba96dde4af9f4e06caba475fa65e94e4c54fe4aa3e9f4f504c02178eb8934e", + "vnd.docker.reference.type": "attestation-manifest" + }, + "platform": { + "architecture": "unknown", + "os": "unknown" + } + } + ], + "annotations": { + "org.opencontainers.image.ref.name": "golang:1.21@sha256:4746d26432a9117a5f58e95cb9f954ddf0de128e9d5816886514199316e4a2fb" + } + }, + "infosiftr/moby:latest": { + "schemaVersion": 2, + "mediaType": "application/vnd.oci.image.index.v1+json", + "manifests": [ + { + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "digest": "sha256:6cc5699690d00fe488561cea05f99b5e4fa8e0a86533f348af6d53f5cefefb83", + "size": 3062, + "annotations": { + "com.docker.official-images.bashbrew.arch": "amd64", + "org.opencontainers.image.base.digest": "sha256:38a76d01668772e381ad2826d876627c89e7133e2f8a0f5d567306798b0f2a16", + "org.opencontainers.image.base.name": "debian:trixie-slim", + "org.opencontainers.image.created": "2026-08-05T13:39:51Z", + "org.opencontainers.image.ref.name": "infosiftr/moby:latest@sha256:6cc5699690d00fe488561cea05f99b5e4fa8e0a86533f348af6d53f5cefefb83", + "org.opencontainers.image.revision": "dc881c6dcd338ab8286555023d54fcee8e53e3ac", + "org.opencontainers.image.source": "https://github.com/tianon/dockerfiles.git#dc881c6dcd338ab8286555023d54fcee8e53e3ac:infosiftr-moby", + "org.opencontainers.image.url": "https://hub.docker.com/r/infosiftr/moby", + "org.opencontainers.image.version": "23.0.18" + }, + "platform": { + "architecture": "amd64", + "os": "linux" + } + }, + { + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "digest": "sha256:db323e6e873837f60722d8d3024b520c134ab7f1429f5ca72cbf57820be74331", + "size": 838, + "annotations": { + "com.docker.official-images.bashbrew.arch": "amd64", + "org.opencontainers.image.ref.name": "infosiftr/moby:latest@sha256:db323e6e873837f60722d8d3024b520c134ab7f1429f5ca72cbf57820be74331", + "vnd.docker.reference.digest": "sha256:6cc5699690d00fe488561cea05f99b5e4fa8e0a86533f348af6d53f5cefefb83", + "vnd.docker.reference.type": "attestation-manifest" + }, + "platform": { + "architecture": "unknown", + "os": "unknown" + } + } + ], + "annotations": { + "org.opencontainers.image.ref.name": "infosiftr/moby:latest@sha256:8dd56beee021d11ff3dd629689492a27dc5ee1e61b658c43ebc4730e64d60d8f" + } + } + }, + "hostArch": "amd64", + "crossHostArches": [ + "amd64", + "arm32v7", + "arm64v8", + "i386", + "mips64le", + "ppc64le", + "s390x" + ] + }, + "source": { + "sourceId": "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e", + "reproducibleGitChecksum": "f32e9b7ab78fecd14f065cecec4ea538bafa31f1d46d91ded8b56231c8abc4f8", + "entries": [ + { + "GitRepo": "https://github.com/tianon/dockerfiles.git", + "GitFetch": "refs/heads/master", + "GitCommit": "386636e197ba347441c97db8edcfad9113e41365", + "Directory": "buildkit", + "File": "Dockerfile", + "Builder": "buildkit", + "SOURCE_DATE_EPOCH": 1716334145 + } + ], + "arches": { + "amd64": { + "tags": [ + "buildkit:0.13.2", + "buildkit:0.13", + "buildkit:0", + "buildkit:latest" + ], + "archTags": [ + "amd64/buildkit:0.13.2", + "amd64/buildkit:0.13", + "amd64/buildkit:0", + "amd64/buildkit:latest" + ], + "dockerfileParents": [ + { + "From": "golang:1.21", + "Platform": "$BUILDPLATFORM", + "Kind": "FROM" + }, + { + "From": "infosiftr/moby:latest", + "Kind": "FROM" + } + ], + "platformString": "linux/amd64", + "platform": { + "architecture": "amd64", + "os": "linux" + }, + "parents": [ + { + "From": "golang:1.21", + "Platform": "$BUILDPLATFORM", + "Kind": "FROM", + "sourceId": null, + "pin": null + }, + { + "From": "infosiftr/moby:latest", + "Kind": "FROM", + "sourceId": null, + "pin": null + } + ], + "hostArch": null, + "crossHostArches": null + } + } + } + }, + "084ac612cff7ffc3a341519aed4dac85c566fc04a208ba7b93104a836a4ceba5": { + "buildId": "084ac612cff7ffc3a341519aed4dac85c566fc04a208ba7b93104a836a4ceba5", + "build": { + "img": "oisupport/staging-arm32v5:084ac612cff7ffc3a341519aed4dac85c566fc04a208ba7b93104a836a4ceba5", + "resolved": null, + "sourceId": "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e", + "arch": "arm32v5", + "parents": { + "golang:1.21": "sha256:e6ba96dde4af9f4e06caba475fa65e94e4c54fe4aa3e9f4f504c02178eb8934e", + "infosiftr/moby:latest": "sha256:c370241c0c98684b56ec669d7bbecee436e85806d6a6211bb1891d10c6ea0133" + }, + "resolvedParents": { + "golang:1.21": { + "schemaVersion": 2, + "mediaType": "application/vnd.oci.image.index.v1+json", + "manifests": [ + { + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "digest": "sha256:e6ba96dde4af9f4e06caba475fa65e94e4c54fe4aa3e9f4f504c02178eb8934e", + "size": 2323, + "annotations": { + "com.docker.official-images.bashbrew.arch": "amd64", + "org.opencontainers.image.base.digest": "sha256:5adb33fa5acfa9c961124600941acb92995c6ceb0b082bbac0dbf00c6724cee0", + "org.opencontainers.image.base.name": "buildpack-deps:bookworm-scm", + "org.opencontainers.image.created": "2024-08-13T02:04:45Z", + "org.opencontainers.image.ref.name": "golang:1.21@sha256:e6ba96dde4af9f4e06caba475fa65e94e4c54fe4aa3e9f4f504c02178eb8934e", + "org.opencontainers.image.revision": "aaed3270d35c8a4c8378d72a380890bafffcbec6", + "org.opencontainers.image.source": "https://github.com/docker-library/golang.git#aaed3270d35c8a4c8378d72a380890bafffcbec6:1.21/bookworm", + "org.opencontainers.image.url": "https://hub.docker.com/_/golang", + "org.opencontainers.image.version": "1.21.13-bookworm" + }, + "platform": { + "architecture": "amd64", + "os": "linux" + } + }, + { + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "digest": "sha256:3ebdef0bd69a065dd4a0226d05ce5272c952b02e751850b8364fde34f87c962b", + "size": 842, + "annotations": { + "com.docker.official-images.bashbrew.arch": "amd64", + "org.opencontainers.image.ref.name": "golang:1.21@sha256:3ebdef0bd69a065dd4a0226d05ce5272c952b02e751850b8364fde34f87c962b", + "vnd.docker.reference.digest": "sha256:e6ba96dde4af9f4e06caba475fa65e94e4c54fe4aa3e9f4f504c02178eb8934e", + "vnd.docker.reference.type": "attestation-manifest" + }, + "platform": { + "architecture": "unknown", + "os": "unknown" + } + } + ], + "annotations": { + "org.opencontainers.image.ref.name": "golang:1.21@sha256:4746d26432a9117a5f58e95cb9f954ddf0de128e9d5816886514199316e4a2fb" + } + }, + "infosiftr/moby:latest": { + "schemaVersion": 2, + "mediaType": "application/vnd.oci.image.index.v1+json", + "manifests": [ + { + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "digest": "sha256:c370241c0c98684b56ec669d7bbecee436e85806d6a6211bb1891d10c6ea0133", + "size": 3063, + "annotations": { + "com.docker.official-images.bashbrew.arch": "arm32v5", + "org.opencontainers.image.base.digest": "sha256:24bfbf923b10ba8cfcd22c2e4124e625b30133491891f288d92cefc8ce9f4d14", + "org.opencontainers.image.base.name": "debian:trixie-slim", + "org.opencontainers.image.created": "2026-08-05T16:43:09Z", + "org.opencontainers.image.ref.name": "infosiftr/moby:latest@sha256:c370241c0c98684b56ec669d7bbecee436e85806d6a6211bb1891d10c6ea0133", + "org.opencontainers.image.revision": "dc881c6dcd338ab8286555023d54fcee8e53e3ac", + "org.opencontainers.image.source": "https://github.com/tianon/dockerfiles.git#dc881c6dcd338ab8286555023d54fcee8e53e3ac:infosiftr-moby", + "org.opencontainers.image.url": "https://hub.docker.com/r/infosiftr/moby", + "org.opencontainers.image.version": "23.0.18" + }, + "platform": { + "architecture": "arm", + "os": "linux", + "variant": "v5" + } + }, + { + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "digest": "sha256:51a5ae47ded119ca0286dd6b39a3f5766a64ab15bfdd89475b7018ce9d28ab28", + "size": 838, + "annotations": { + "com.docker.official-images.bashbrew.arch": "arm32v5", + "org.opencontainers.image.ref.name": "infosiftr/moby:latest@sha256:51a5ae47ded119ca0286dd6b39a3f5766a64ab15bfdd89475b7018ce9d28ab28", + "vnd.docker.reference.digest": "sha256:c370241c0c98684b56ec669d7bbecee436e85806d6a6211bb1891d10c6ea0133", + "vnd.docker.reference.type": "attestation-manifest" + }, + "platform": { + "architecture": "unknown", + "os": "unknown" + } + } + ], + "annotations": { + "org.opencontainers.image.ref.name": "infosiftr/moby:latest@sha256:8dd56beee021d11ff3dd629689492a27dc5ee1e61b658c43ebc4730e64d60d8f" + } + } + }, + "hostArch": "amd64", + "crossHostArches": [ + "amd64", + "arm32v7", + "arm64v8", + "i386", + "mips64le", + "ppc64le", + "s390x" + ] + }, + "source": { + "sourceId": "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e", + "reproducibleGitChecksum": "f32e9b7ab78fecd14f065cecec4ea538bafa31f1d46d91ded8b56231c8abc4f8", + "entries": [ + { + "GitRepo": "https://github.com/tianon/dockerfiles.git", + "GitFetch": "refs/heads/master", + "GitCommit": "386636e197ba347441c97db8edcfad9113e41365", + "Directory": "buildkit", + "File": "Dockerfile", + "Builder": "buildkit", + "SOURCE_DATE_EPOCH": 1716334145 + } + ], + "arches": { + "arm32v5": { + "tags": [ + "buildkit:0.13.2", + "buildkit:0.13", + "buildkit:0", + "buildkit:latest" + ], + "archTags": [ + "arm32v5/buildkit:0.13.2", + "arm32v5/buildkit:0.13", + "arm32v5/buildkit:0", + "arm32v5/buildkit:latest" + ], + "dockerfileParents": [ + { + "From": "golang:1.21", + "Platform": "$BUILDPLATFORM", + "Kind": "FROM" + }, + { + "From": "infosiftr/moby:latest", + "Kind": "FROM" + } + ], + "platformString": "linux/arm/v5", + "platform": { + "architecture": "arm", + "os": "linux", + "variant": "v5" + }, + "parents": [ + { + "From": "golang:1.21", + "Platform": "$BUILDPLATFORM", + "Kind": "FROM", + "sourceId": null, + "pin": null + }, + { + "From": "infosiftr/moby:latest", + "Kind": "FROM", + "sourceId": null, + "pin": null + } + ], + "hostArch": null, + "crossHostArches": null + } + } + } + }, + "5dfd484eb92dfd8fc3e4de11b177e9548f70b6e5e86dc70868dfc3a92d1bdbaa": { + "buildId": "5dfd484eb92dfd8fc3e4de11b177e9548f70b6e5e86dc70868dfc3a92d1bdbaa", + "build": { + "img": "oisupport/staging-arm32v7:5dfd484eb92dfd8fc3e4de11b177e9548f70b6e5e86dc70868dfc3a92d1bdbaa", + "resolved": null, + "sourceId": "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e", + "arch": "arm32v7", + "parents": { + "golang:1.21": "sha256:b9c2e58b44c8d4f15bd048980f6f1631e1618850bf78f3c3ae13e5f07a1bb7a6", + "infosiftr/moby:latest": "sha256:8db2ca116acb8f4eeab132842aee832c49a638ca3930cd8c385495175890ca8a" + }, + "resolvedParents": { + "golang:1.21": { + "schemaVersion": 2, + "mediaType": "application/vnd.oci.image.index.v1+json", + "manifests": [ + { + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "digest": "sha256:b9c2e58b44c8d4f15bd048980f6f1631e1618850bf78f3c3ae13e5f07a1bb7a6", + "size": 2325, + "annotations": { + "com.docker.official-images.bashbrew.arch": "arm32v7", + "org.opencontainers.image.base.digest": "sha256:413eb7a17bf465581914dd04c3592793bd8f547292671e2574b04d57a5b99589", + "org.opencontainers.image.base.name": "buildpack-deps:bookworm-scm", + "org.opencontainers.image.created": "2024-08-13T11:34:12Z", + "org.opencontainers.image.ref.name": "golang:1.21@sha256:b9c2e58b44c8d4f15bd048980f6f1631e1618850bf78f3c3ae13e5f07a1bb7a6", + "org.opencontainers.image.revision": "aaed3270d35c8a4c8378d72a380890bafffcbec6", + "org.opencontainers.image.source": "https://github.com/docker-library/golang.git#aaed3270d35c8a4c8378d72a380890bafffcbec6:1.21/bookworm", + "org.opencontainers.image.url": "https://hub.docker.com/_/golang", + "org.opencontainers.image.version": "1.21.13-bookworm" + }, + "platform": { + "architecture": "arm", + "os": "linux", + "variant": "v7" + } + }, + { + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "digest": "sha256:45c6a5f2638d8d0363ff4d09dde6d4e2b51b4f9ab635a982fddc870c2fe399d8", + "size": 842, + "annotations": { + "com.docker.official-images.bashbrew.arch": "arm32v7", + "org.opencontainers.image.ref.name": "golang:1.21@sha256:45c6a5f2638d8d0363ff4d09dde6d4e2b51b4f9ab635a982fddc870c2fe399d8", + "vnd.docker.reference.digest": "sha256:b9c2e58b44c8d4f15bd048980f6f1631e1618850bf78f3c3ae13e5f07a1bb7a6", + "vnd.docker.reference.type": "attestation-manifest" + }, + "platform": { + "architecture": "unknown", + "os": "unknown" + } + } + ], + "annotations": { + "org.opencontainers.image.ref.name": "golang:1.21@sha256:4746d26432a9117a5f58e95cb9f954ddf0de128e9d5816886514199316e4a2fb" + } + }, + "infosiftr/moby:latest": { + "schemaVersion": 2, + "mediaType": "application/vnd.oci.image.index.v1+json", + "manifests": [ + { + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "digest": "sha256:8db2ca116acb8f4eeab132842aee832c49a638ca3930cd8c385495175890ca8a", + "size": 3063, + "annotations": { + "com.docker.official-images.bashbrew.arch": "arm32v7", + "org.opencontainers.image.base.digest": "sha256:f445f0eca2d6fa4c1525039c38dbea85a8a4149a88e2714a96e1e127bbb036ae", + "org.opencontainers.image.base.name": "debian:trixie-slim", + "org.opencontainers.image.created": "2026-08-05T15:40:41Z", + "org.opencontainers.image.ref.name": "infosiftr/moby:latest@sha256:8db2ca116acb8f4eeab132842aee832c49a638ca3930cd8c385495175890ca8a", + "org.opencontainers.image.revision": "dc881c6dcd338ab8286555023d54fcee8e53e3ac", + "org.opencontainers.image.source": "https://github.com/tianon/dockerfiles.git#dc881c6dcd338ab8286555023d54fcee8e53e3ac:infosiftr-moby", + "org.opencontainers.image.url": "https://hub.docker.com/r/infosiftr/moby", + "org.opencontainers.image.version": "23.0.18" + }, + "platform": { + "architecture": "arm", + "os": "linux", + "variant": "v7" + } + }, + { + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "digest": "sha256:2b691d3bf2dbe8f795865d5ef0caeafde51cd944fbd493e21ae25625faf6c847", + "size": 838, + "annotations": { + "com.docker.official-images.bashbrew.arch": "arm32v7", + "org.opencontainers.image.ref.name": "infosiftr/moby:latest@sha256:2b691d3bf2dbe8f795865d5ef0caeafde51cd944fbd493e21ae25625faf6c847", + "vnd.docker.reference.digest": "sha256:8db2ca116acb8f4eeab132842aee832c49a638ca3930cd8c385495175890ca8a", + "vnd.docker.reference.type": "attestation-manifest" + }, + "platform": { + "architecture": "unknown", + "os": "unknown" + } + } + ], + "annotations": { + "org.opencontainers.image.ref.name": "infosiftr/moby:latest@sha256:8dd56beee021d11ff3dd629689492a27dc5ee1e61b658c43ebc4730e64d60d8f" + } + } + }, + "hostArch": "arm32v7", + "crossHostArches": [ + "amd64", + "arm32v7", + "arm64v8", + "i386", + "mips64le", + "ppc64le", + "s390x" + ] + }, + "source": { + "sourceId": "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e", + "reproducibleGitChecksum": "f32e9b7ab78fecd14f065cecec4ea538bafa31f1d46d91ded8b56231c8abc4f8", + "entries": [ + { + "GitRepo": "https://github.com/tianon/dockerfiles.git", + "GitFetch": "refs/heads/master", + "GitCommit": "386636e197ba347441c97db8edcfad9113e41365", + "Directory": "buildkit", + "File": "Dockerfile", + "Builder": "buildkit", + "SOURCE_DATE_EPOCH": 1716334145 + } + ], + "arches": { + "arm32v7": { + "tags": [ + "buildkit:0.13.2", + "buildkit:0.13", + "buildkit:0", + "buildkit:latest" + ], + "archTags": [ + "arm32v7/buildkit:0.13.2", + "arm32v7/buildkit:0.13", + "arm32v7/buildkit:0", + "arm32v7/buildkit:latest" + ], + "dockerfileParents": [ + { + "From": "golang:1.21", + "Platform": "$BUILDPLATFORM", + "Kind": "FROM" + }, + { + "From": "infosiftr/moby:latest", + "Kind": "FROM" + } + ], + "platformString": "linux/arm/v7", + "platform": { + "architecture": "arm", + "os": "linux", + "variant": "v7" + }, + "parents": [ + { + "From": "golang:1.21", + "Platform": "$BUILDPLATFORM", + "Kind": "FROM", + "sourceId": null, + "pin": null + }, + { + "From": "infosiftr/moby:latest", + "Kind": "FROM", + "sourceId": null, + "pin": null + } + ], + "hostArch": null, + "crossHostArches": null + } + } + } + }, + "3029033aa2bcb9a1c4fec4a8990c0f12ab629a270781b0dce82ceae4ac01cd03": { + "buildId": "3029033aa2bcb9a1c4fec4a8990c0f12ab629a270781b0dce82ceae4ac01cd03", + "build": { + "img": "oisupport/staging-arm64v8:3029033aa2bcb9a1c4fec4a8990c0f12ab629a270781b0dce82ceae4ac01cd03", + "resolved": null, + "sourceId": "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e", + "arch": "arm64v8", + "parents": { + "golang:1.21": "sha256:dfceff6afa1332bfb629241677a1272cf914eb51da2e370d47ab9ce8b4d94b0c", + "infosiftr/moby:latest": "sha256:12120c66e2729647a0c7ae268e07c6118ca47c2df5cd39bd9ff0dd9e3c34f373" + }, + "resolvedParents": { + "golang:1.21": { + "schemaVersion": 2, + "mediaType": "application/vnd.oci.image.index.v1+json", + "manifests": [ + { + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "digest": "sha256:dfceff6afa1332bfb629241677a1272cf914eb51da2e370d47ab9ce8b4d94b0c", + "size": 2325, + "annotations": { + "com.docker.official-images.bashbrew.arch": "arm64v8", + "org.opencontainers.image.base.digest": "sha256:b537e2ea346b2c9385f469b3ee84c8eefe339c477a078ce6e9a89cdd1a0b6822", + "org.opencontainers.image.base.name": "buildpack-deps:bookworm-scm", + "org.opencontainers.image.created": "2024-08-13T16:05:05Z", + "org.opencontainers.image.ref.name": "golang:1.21@sha256:dfceff6afa1332bfb629241677a1272cf914eb51da2e370d47ab9ce8b4d94b0c", + "org.opencontainers.image.revision": "aaed3270d35c8a4c8378d72a380890bafffcbec6", + "org.opencontainers.image.source": "https://github.com/docker-library/golang.git#aaed3270d35c8a4c8378d72a380890bafffcbec6:1.21/bookworm", + "org.opencontainers.image.url": "https://hub.docker.com/_/golang", + "org.opencontainers.image.version": "1.21.13-bookworm" + }, + "platform": { + "architecture": "arm64", + "os": "linux", + "variant": "v8" + } + }, + { + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "digest": "sha256:b560cea10bef45f7ecb86325158fa29b5c467ece9d97008c016829291692f48c", + "size": 842, + "annotations": { + "com.docker.official-images.bashbrew.arch": "arm64v8", + "org.opencontainers.image.ref.name": "golang:1.21@sha256:b560cea10bef45f7ecb86325158fa29b5c467ece9d97008c016829291692f48c", + "vnd.docker.reference.digest": "sha256:dfceff6afa1332bfb629241677a1272cf914eb51da2e370d47ab9ce8b4d94b0c", + "vnd.docker.reference.type": "attestation-manifest" + }, + "platform": { + "architecture": "unknown", + "os": "unknown" + } + } + ], + "annotations": { + "org.opencontainers.image.ref.name": "golang:1.21@sha256:4746d26432a9117a5f58e95cb9f954ddf0de128e9d5816886514199316e4a2fb" + } + }, + "infosiftr/moby:latest": { + "schemaVersion": 2, + "mediaType": "application/vnd.oci.image.index.v1+json", + "manifests": [ + { + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "digest": "sha256:12120c66e2729647a0c7ae268e07c6118ca47c2df5cd39bd9ff0dd9e3c34f373", + "size": 3063, + "annotations": { + "com.docker.official-images.bashbrew.arch": "arm64v8", + "org.opencontainers.image.base.digest": "sha256:c94f5ddd41327aa2d4a7cfba7889056c02936182fd76a513fec6160c97181fc0", + "org.opencontainers.image.base.name": "debian:trixie-slim", + "org.opencontainers.image.created": "2026-08-05T14:55:45Z", + "org.opencontainers.image.ref.name": "infosiftr/moby:latest@sha256:12120c66e2729647a0c7ae268e07c6118ca47c2df5cd39bd9ff0dd9e3c34f373", + "org.opencontainers.image.revision": "dc881c6dcd338ab8286555023d54fcee8e53e3ac", + "org.opencontainers.image.source": "https://github.com/tianon/dockerfiles.git#dc881c6dcd338ab8286555023d54fcee8e53e3ac:infosiftr-moby", + "org.opencontainers.image.url": "https://hub.docker.com/r/infosiftr/moby", + "org.opencontainers.image.version": "23.0.18" + }, + "platform": { + "architecture": "arm64", + "os": "linux", + "variant": "v8" + } + }, + { + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "digest": "sha256:ea400e2eae49a6bb4a961563fa65f9c8477eba6c15916165a50f49de82d8c6e7", + "size": 838, + "annotations": { + "com.docker.official-images.bashbrew.arch": "arm64v8", + "org.opencontainers.image.ref.name": "infosiftr/moby:latest@sha256:ea400e2eae49a6bb4a961563fa65f9c8477eba6c15916165a50f49de82d8c6e7", + "vnd.docker.reference.digest": "sha256:12120c66e2729647a0c7ae268e07c6118ca47c2df5cd39bd9ff0dd9e3c34f373", + "vnd.docker.reference.type": "attestation-manifest" + }, + "platform": { + "architecture": "unknown", + "os": "unknown" + } + } + ], + "annotations": { + "org.opencontainers.image.ref.name": "infosiftr/moby:latest@sha256:8dd56beee021d11ff3dd629689492a27dc5ee1e61b658c43ebc4730e64d60d8f" + } + } + }, + "hostArch": "arm64v8", + "crossHostArches": [ + "amd64", + "arm32v7", + "arm64v8", + "i386", + "mips64le", + "ppc64le", + "s390x" + ] + }, + "source": { + "sourceId": "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e", + "reproducibleGitChecksum": "f32e9b7ab78fecd14f065cecec4ea538bafa31f1d46d91ded8b56231c8abc4f8", + "entries": [ + { + "GitRepo": "https://github.com/tianon/dockerfiles.git", + "GitFetch": "refs/heads/master", + "GitCommit": "386636e197ba347441c97db8edcfad9113e41365", + "Directory": "buildkit", + "File": "Dockerfile", + "Builder": "buildkit", + "SOURCE_DATE_EPOCH": 1716334145 + } + ], + "arches": { + "arm64v8": { + "tags": [ + "buildkit:0.13.2", + "buildkit:0.13", + "buildkit:0", + "buildkit:latest" + ], + "archTags": [ + "arm64v8/buildkit:0.13.2", + "arm64v8/buildkit:0.13", + "arm64v8/buildkit:0", + "arm64v8/buildkit:latest" + ], + "dockerfileParents": [ + { + "From": "golang:1.21", + "Platform": "$BUILDPLATFORM", + "Kind": "FROM" + }, + { + "From": "infosiftr/moby:latest", + "Kind": "FROM" + } + ], + "platformString": "linux/arm64/v8", + "platform": { + "architecture": "arm64", + "os": "linux", + "variant": "v8" + }, + "parents": [ + { + "From": "golang:1.21", + "Platform": "$BUILDPLATFORM", + "Kind": "FROM", + "sourceId": null, + "pin": null + }, + { + "From": "infosiftr/moby:latest", + "Kind": "FROM", + "sourceId": null, + "pin": null + } + ], + "hostArch": null, + "crossHostArches": null + } + } + } + }, + "25970209bbeefa6d3eac1e2f7bae681c13d0297050a107800f1a59e6f212fec6": { + "buildId": "25970209bbeefa6d3eac1e2f7bae681c13d0297050a107800f1a59e6f212fec6", + "build": { + "img": "oisupport/staging-i386:25970209bbeefa6d3eac1e2f7bae681c13d0297050a107800f1a59e6f212fec6", + "resolved": null, + "sourceId": "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e", + "arch": "i386", + "parents": { + "golang:1.21": "sha256:0d086625169a25725cd80317e495198f1bf1611fcefc0aa232f67cac89704773", + "infosiftr/moby:latest": "sha256:e71ebaad7dc3e6dca5cda1012519ace5532ad7bc5ef235ba4988513225b7be84" + }, + "resolvedParents": { + "golang:1.21": { + "schemaVersion": 2, + "mediaType": "application/vnd.oci.image.index.v1+json", + "manifests": [ + { + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "digest": "sha256:0d086625169a25725cd80317e495198f1bf1611fcefc0aa232f67cac89704773", + "size": 2322, + "annotations": { + "com.docker.official-images.bashbrew.arch": "i386", + "org.opencontainers.image.base.digest": "sha256:fc24d91b13db9bea6198bb18d275403768ca62332ea9815b3e91b87bda5b6ec4", + "org.opencontainers.image.base.name": "buildpack-deps:bookworm-scm", + "org.opencontainers.image.created": "2024-08-13T02:04:49Z", + "org.opencontainers.image.ref.name": "golang:1.21@sha256:0d086625169a25725cd80317e495198f1bf1611fcefc0aa232f67cac89704773", + "org.opencontainers.image.revision": "aaed3270d35c8a4c8378d72a380890bafffcbec6", + "org.opencontainers.image.source": "https://github.com/docker-library/golang.git#aaed3270d35c8a4c8378d72a380890bafffcbec6:1.21/bookworm", + "org.opencontainers.image.url": "https://hub.docker.com/_/golang", + "org.opencontainers.image.version": "1.21.13-bookworm" + }, + "platform": { + "architecture": "386", + "os": "linux" + } + }, + { + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "digest": "sha256:1e47321860195cc223c19138889d16c194a29ce7dedc6cbf429c6f1c429944a0", + "size": 842, + "annotations": { + "com.docker.official-images.bashbrew.arch": "i386", + "org.opencontainers.image.ref.name": "golang:1.21@sha256:1e47321860195cc223c19138889d16c194a29ce7dedc6cbf429c6f1c429944a0", + "vnd.docker.reference.digest": "sha256:0d086625169a25725cd80317e495198f1bf1611fcefc0aa232f67cac89704773", + "vnd.docker.reference.type": "attestation-manifest" + }, + "platform": { + "architecture": "unknown", + "os": "unknown" + } + } + ], + "annotations": { + "org.opencontainers.image.ref.name": "golang:1.21@sha256:4746d26432a9117a5f58e95cb9f954ddf0de128e9d5816886514199316e4a2fb" + } + }, + "infosiftr/moby:latest": { + "schemaVersion": 2, + "mediaType": "application/vnd.oci.image.index.v1+json", + "manifests": [ + { + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "digest": "sha256:e71ebaad7dc3e6dca5cda1012519ace5532ad7bc5ef235ba4988513225b7be84", + "size": 3060, + "annotations": { + "com.docker.official-images.bashbrew.arch": "i386", + "org.opencontainers.image.base.digest": "sha256:00a5cd538a5885efc648411ce55fc407cd467d8f008dc6e509c04b8cf4819f7f", + "org.opencontainers.image.base.name": "debian:trixie-slim", + "org.opencontainers.image.created": "2026-08-05T14:48:44Z", + "org.opencontainers.image.ref.name": "infosiftr/moby:latest@sha256:e71ebaad7dc3e6dca5cda1012519ace5532ad7bc5ef235ba4988513225b7be84", + "org.opencontainers.image.revision": "dc881c6dcd338ab8286555023d54fcee8e53e3ac", + "org.opencontainers.image.source": "https://github.com/tianon/dockerfiles.git#dc881c6dcd338ab8286555023d54fcee8e53e3ac:infosiftr-moby", + "org.opencontainers.image.url": "https://hub.docker.com/r/infosiftr/moby", + "org.opencontainers.image.version": "23.0.18" + }, + "platform": { + "architecture": "386", + "os": "linux" + } + }, + { + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "digest": "sha256:470f915503718222396280b90afdba04ec4eb9d053ea9a80b91feb094938d429", + "size": 838, + "annotations": { + "com.docker.official-images.bashbrew.arch": "i386", + "org.opencontainers.image.ref.name": "infosiftr/moby:latest@sha256:470f915503718222396280b90afdba04ec4eb9d053ea9a80b91feb094938d429", + "vnd.docker.reference.digest": "sha256:e71ebaad7dc3e6dca5cda1012519ace5532ad7bc5ef235ba4988513225b7be84", + "vnd.docker.reference.type": "attestation-manifest" + }, + "platform": { + "architecture": "unknown", + "os": "unknown" + } + } + ], + "annotations": { + "org.opencontainers.image.ref.name": "infosiftr/moby:latest@sha256:8dd56beee021d11ff3dd629689492a27dc5ee1e61b658c43ebc4730e64d60d8f" + } + } + }, + "hostArch": "i386", + "crossHostArches": [ + "amd64", + "arm32v7", + "arm64v8", + "i386", + "mips64le", + "ppc64le", + "s390x" + ] + }, + "source": { + "sourceId": "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e", + "reproducibleGitChecksum": "f32e9b7ab78fecd14f065cecec4ea538bafa31f1d46d91ded8b56231c8abc4f8", + "entries": [ + { + "GitRepo": "https://github.com/tianon/dockerfiles.git", + "GitFetch": "refs/heads/master", + "GitCommit": "386636e197ba347441c97db8edcfad9113e41365", + "Directory": "buildkit", + "File": "Dockerfile", + "Builder": "buildkit", + "SOURCE_DATE_EPOCH": 1716334145 + } + ], + "arches": { + "i386": { + "tags": [ + "buildkit:0.13.2", + "buildkit:0.13", + "buildkit:0", + "buildkit:latest" + ], + "archTags": [ + "i386/buildkit:0.13.2", + "i386/buildkit:0.13", + "i386/buildkit:0", + "i386/buildkit:latest" + ], + "dockerfileParents": [ + { + "From": "golang:1.21", + "Platform": "$BUILDPLATFORM", + "Kind": "FROM" + }, + { + "From": "infosiftr/moby:latest", + "Kind": "FROM" + } + ], + "platformString": "linux/386", + "platform": { + "architecture": "386", + "os": "linux" + }, + "parents": [ + { + "From": "golang:1.21", + "Platform": "$BUILDPLATFORM", + "Kind": "FROM", + "sourceId": null, + "pin": null + }, + { + "From": "infosiftr/moby:latest", + "Kind": "FROM", + "sourceId": null, + "pin": null + } + ], + "hostArch": null, + "crossHostArches": null + } + } + } + }, + "545764ee68dcd6b1be00f8d771f48f839b67b6e59d96c1c8816ce230f599d179": { + "buildId": "545764ee68dcd6b1be00f8d771f48f839b67b6e59d96c1c8816ce230f599d179", + "build": { + "img": "oisupport/staging-ppc64le:545764ee68dcd6b1be00f8d771f48f839b67b6e59d96c1c8816ce230f599d179", + "resolved": null, + "sourceId": "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e", + "arch": "ppc64le", + "parents": { + "golang:1.21": "sha256:fdf874af259564360541d6b20348e25a281ad703d9909c356e031b8496b91899", + "infosiftr/moby:latest": "sha256:d228787b5efa50c1a9623a915da68558f213960c1abaa96adbab9ba8e86b980b" + }, + "resolvedParents": { + "golang:1.21": { + "schemaVersion": 2, + "mediaType": "application/vnd.oci.image.index.v1+json", + "manifests": [ + { + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "digest": "sha256:fdf874af259564360541d6b20348e25a281ad703d9909c356e031b8496b91899", + "size": 2325, + "annotations": { + "com.docker.official-images.bashbrew.arch": "ppc64le", + "org.opencontainers.image.base.digest": "sha256:59fad96d845621440d0ea25364fecb6fd032c65ce53b07df77cb6b3d3c51b1ad", + "org.opencontainers.image.base.name": "buildpack-deps:bookworm-scm", + "org.opencontainers.image.created": "2024-08-06T23:00:30Z", + "org.opencontainers.image.ref.name": "golang:1.21@sha256:fdf874af259564360541d6b20348e25a281ad703d9909c356e031b8496b91899", + "org.opencontainers.image.revision": "aaed3270d35c8a4c8378d72a380890bafffcbec6", + "org.opencontainers.image.source": "https://github.com/docker-library/golang.git#aaed3270d35c8a4c8378d72a380890bafffcbec6:1.21/bookworm", + "org.opencontainers.image.url": "https://hub.docker.com/_/golang", + "org.opencontainers.image.version": "1.21.13-bookworm" + }, + "platform": { + "architecture": "ppc64le", + "os": "linux" + } + }, + { + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "digest": "sha256:b91c73ecd23d1d03d1786a755cacd8b377596f8b689c5a321b515f20fbc713b2", + "size": 842, + "annotations": { + "com.docker.official-images.bashbrew.arch": "ppc64le", + "org.opencontainers.image.ref.name": "golang:1.21@sha256:b91c73ecd23d1d03d1786a755cacd8b377596f8b689c5a321b515f20fbc713b2", + "vnd.docker.reference.digest": "sha256:fdf874af259564360541d6b20348e25a281ad703d9909c356e031b8496b91899", + "vnd.docker.reference.type": "attestation-manifest" + }, + "platform": { + "architecture": "unknown", + "os": "unknown" + } + } + ], + "annotations": { + "org.opencontainers.image.ref.name": "golang:1.21@sha256:4746d26432a9117a5f58e95cb9f954ddf0de128e9d5816886514199316e4a2fb" + } + }, + "infosiftr/moby:latest": { + "schemaVersion": 2, + "mediaType": "application/vnd.oci.image.index.v1+json", + "manifests": [ + { + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "digest": "sha256:d228787b5efa50c1a9623a915da68558f213960c1abaa96adbab9ba8e86b980b", + "size": 3063, + "annotations": { + "com.docker.official-images.bashbrew.arch": "ppc64le", + "org.opencontainers.image.base.digest": "sha256:deefc402f62ae71568c0d3716cb61c4896e8e95207290c1055628bd6d1b7bbb9", + "org.opencontainers.image.base.name": "debian:trixie-slim", + "org.opencontainers.image.created": "2026-08-05T17:13:20Z", + "org.opencontainers.image.ref.name": "infosiftr/moby:latest@sha256:d228787b5efa50c1a9623a915da68558f213960c1abaa96adbab9ba8e86b980b", + "org.opencontainers.image.revision": "dc881c6dcd338ab8286555023d54fcee8e53e3ac", + "org.opencontainers.image.source": "https://github.com/tianon/dockerfiles.git#dc881c6dcd338ab8286555023d54fcee8e53e3ac:infosiftr-moby", + "org.opencontainers.image.url": "https://hub.docker.com/r/infosiftr/moby", + "org.opencontainers.image.version": "23.0.18" + }, + "platform": { + "architecture": "ppc64le", + "os": "linux" + } + }, + { + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "digest": "sha256:4a07473889b2755ca9fe81e43f5ac851c70f253ba0f839c632a2c2df04c655f0", + "size": 838, + "annotations": { + "com.docker.official-images.bashbrew.arch": "ppc64le", + "org.opencontainers.image.ref.name": "infosiftr/moby:latest@sha256:4a07473889b2755ca9fe81e43f5ac851c70f253ba0f839c632a2c2df04c655f0", + "vnd.docker.reference.digest": "sha256:d228787b5efa50c1a9623a915da68558f213960c1abaa96adbab9ba8e86b980b", + "vnd.docker.reference.type": "attestation-manifest" + }, + "platform": { + "architecture": "unknown", + "os": "unknown" + } + } + ], + "annotations": { + "org.opencontainers.image.ref.name": "infosiftr/moby:latest@sha256:8dd56beee021d11ff3dd629689492a27dc5ee1e61b658c43ebc4730e64d60d8f" + } + } + }, + "hostArch": "ppc64le", + "crossHostArches": [ + "amd64", + "arm32v7", + "arm64v8", + "i386", + "mips64le", + "ppc64le", + "s390x" + ] + }, + "source": { + "sourceId": "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e", + "reproducibleGitChecksum": "f32e9b7ab78fecd14f065cecec4ea538bafa31f1d46d91ded8b56231c8abc4f8", + "entries": [ + { + "GitRepo": "https://github.com/tianon/dockerfiles.git", + "GitFetch": "refs/heads/master", + "GitCommit": "386636e197ba347441c97db8edcfad9113e41365", + "Directory": "buildkit", + "File": "Dockerfile", + "Builder": "buildkit", + "SOURCE_DATE_EPOCH": 1716334145 + } + ], + "arches": { + "ppc64le": { + "tags": [ + "buildkit:0.13.2", + "buildkit:0.13", + "buildkit:0", + "buildkit:latest" + ], + "archTags": [ + "ppc64le/buildkit:0.13.2", + "ppc64le/buildkit:0.13", + "ppc64le/buildkit:0", + "ppc64le/buildkit:latest" + ], + "dockerfileParents": [ + { + "From": "golang:1.21", + "Platform": "$BUILDPLATFORM", + "Kind": "FROM" + }, + { + "From": "infosiftr/moby:latest", + "Kind": "FROM" + } + ], + "platformString": "linux/ppc64le", + "platform": { + "architecture": "ppc64le", + "os": "linux" + }, + "parents": [ + { + "From": "golang:1.21", + "Platform": "$BUILDPLATFORM", + "Kind": "FROM", + "sourceId": null, + "pin": null + }, + { + "From": "infosiftr/moby:latest", + "Kind": "FROM", + "sourceId": null, + "pin": null + } + ], + "hostArch": null, + "crossHostArches": null + } + } + } + }, + "053ceeb35bc0a2695f730825bf5846cb50eb2a0cf828c86484b74ee168f46ea4": { + "buildId": "053ceeb35bc0a2695f730825bf5846cb50eb2a0cf828c86484b74ee168f46ea4", + "build": { + "img": "oisupport/staging-riscv64:053ceeb35bc0a2695f730825bf5846cb50eb2a0cf828c86484b74ee168f46ea4", + "resolved": null, + "sourceId": "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e", + "arch": "riscv64", + "parents": { + "golang:1.21": "sha256:e6ba96dde4af9f4e06caba475fa65e94e4c54fe4aa3e9f4f504c02178eb8934e", + "infosiftr/moby:latest": "sha256:fe3af633bb5c58e8e292e7cd41ef5c8c7fd3e89988466efd07eb2302d0eb74bf" + }, + "resolvedParents": { + "golang:1.21": { + "schemaVersion": 2, + "mediaType": "application/vnd.oci.image.index.v1+json", + "manifests": [ + { + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "digest": "sha256:e6ba96dde4af9f4e06caba475fa65e94e4c54fe4aa3e9f4f504c02178eb8934e", + "size": 2323, + "annotations": { + "com.docker.official-images.bashbrew.arch": "amd64", + "org.opencontainers.image.base.digest": "sha256:5adb33fa5acfa9c961124600941acb92995c6ceb0b082bbac0dbf00c6724cee0", + "org.opencontainers.image.base.name": "buildpack-deps:bookworm-scm", + "org.opencontainers.image.created": "2024-08-13T02:04:45Z", + "org.opencontainers.image.ref.name": "golang:1.21@sha256:e6ba96dde4af9f4e06caba475fa65e94e4c54fe4aa3e9f4f504c02178eb8934e", + "org.opencontainers.image.revision": "aaed3270d35c8a4c8378d72a380890bafffcbec6", + "org.opencontainers.image.source": "https://github.com/docker-library/golang.git#aaed3270d35c8a4c8378d72a380890bafffcbec6:1.21/bookworm", + "org.opencontainers.image.url": "https://hub.docker.com/_/golang", + "org.opencontainers.image.version": "1.21.13-bookworm" + }, + "platform": { + "architecture": "amd64", + "os": "linux" + } + }, + { + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "digest": "sha256:3ebdef0bd69a065dd4a0226d05ce5272c952b02e751850b8364fde34f87c962b", + "size": 842, + "annotations": { + "com.docker.official-images.bashbrew.arch": "amd64", + "org.opencontainers.image.ref.name": "golang:1.21@sha256:3ebdef0bd69a065dd4a0226d05ce5272c952b02e751850b8364fde34f87c962b", + "vnd.docker.reference.digest": "sha256:e6ba96dde4af9f4e06caba475fa65e94e4c54fe4aa3e9f4f504c02178eb8934e", + "vnd.docker.reference.type": "attestation-manifest" + }, + "platform": { + "architecture": "unknown", + "os": "unknown" + } + } ], - "lastStageFrom": "scratch", - "platformString": "linux/386", + "annotations": { + "org.opencontainers.image.ref.name": "golang:1.21@sha256:4746d26432a9117a5f58e95cb9f954ddf0de128e9d5816886514199316e4a2fb" + } + }, + "infosiftr/moby:latest": { + "schemaVersion": 2, + "mediaType": "application/vnd.oci.image.index.v1+json", + "manifests": [ + { + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "digest": "sha256:fe3af633bb5c58e8e292e7cd41ef5c8c7fd3e89988466efd07eb2302d0eb74bf", + "size": 3063, + "annotations": { + "com.docker.official-images.bashbrew.arch": "riscv64", + "org.opencontainers.image.base.digest": "sha256:9b16a18281ae6a264442bb19211592013e202fc5037828635f75953e9e873766", + "org.opencontainers.image.base.name": "debian:trixie-slim", + "org.opencontainers.image.created": "2026-08-05T16:12:15Z", + "org.opencontainers.image.ref.name": "infosiftr/moby:latest@sha256:fe3af633bb5c58e8e292e7cd41ef5c8c7fd3e89988466efd07eb2302d0eb74bf", + "org.opencontainers.image.revision": "dc881c6dcd338ab8286555023d54fcee8e53e3ac", + "org.opencontainers.image.source": "https://github.com/tianon/dockerfiles.git#dc881c6dcd338ab8286555023d54fcee8e53e3ac:infosiftr-moby", + "org.opencontainers.image.url": "https://hub.docker.com/r/infosiftr/moby", + "org.opencontainers.image.version": "23.0.18" + }, + "platform": { + "architecture": "riscv64", + "os": "linux" + } + }, + { + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "digest": "sha256:85779490985ee34dfd34f4120742eb8e6ef1732080297bc85892f7b3dd4283ac", + "size": 838, + "annotations": { + "com.docker.official-images.bashbrew.arch": "riscv64", + "org.opencontainers.image.ref.name": "infosiftr/moby:latest@sha256:85779490985ee34dfd34f4120742eb8e6ef1732080297bc85892f7b3dd4283ac", + "vnd.docker.reference.digest": "sha256:fe3af633bb5c58e8e292e7cd41ef5c8c7fd3e89988466efd07eb2302d0eb74bf", + "vnd.docker.reference.type": "attestation-manifest" + }, + "platform": { + "architecture": "unknown", + "os": "unknown" + } + } + ], + "annotations": { + "org.opencontainers.image.ref.name": "infosiftr/moby:latest@sha256:8dd56beee021d11ff3dd629689492a27dc5ee1e61b658c43ebc4730e64d60d8f" + } + } + }, + "hostArch": "amd64", + "crossHostArches": [ + "amd64", + "arm32v7", + "arm64v8", + "i386", + "mips64le", + "ppc64le", + "s390x" + ] + }, + "source": { + "sourceId": "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e", + "reproducibleGitChecksum": "f32e9b7ab78fecd14f065cecec4ea538bafa31f1d46d91ded8b56231c8abc4f8", + "entries": [ + { + "GitRepo": "https://github.com/tianon/dockerfiles.git", + "GitFetch": "refs/heads/master", + "GitCommit": "386636e197ba347441c97db8edcfad9113e41365", + "Directory": "buildkit", + "File": "Dockerfile", + "Builder": "buildkit", + "SOURCE_DATE_EPOCH": 1716334145 + } + ], + "arches": { + "riscv64": { + "tags": [ + "buildkit:0.13.2", + "buildkit:0.13", + "buildkit:0", + "buildkit:latest" + ], + "archTags": [ + "riscv64/buildkit:0.13.2", + "riscv64/buildkit:0.13", + "riscv64/buildkit:0", + "riscv64/buildkit:latest" + ], + "dockerfileParents": [ + { + "From": "golang:1.21", + "Platform": "$BUILDPLATFORM", + "Kind": "FROM" + }, + { + "From": "infosiftr/moby:latest", + "Kind": "FROM" + } + ], + "platformString": "linux/riscv64", "platform": { - "architecture": "386", + "architecture": "riscv64", "os": "linux" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "golang:1.21", + "Platform": "$BUILDPLATFORM", + "Kind": "FROM", + "sourceId": null, + "pin": null + }, + { + "From": "infosiftr/moby:latest", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": null, + "crossHostArches": null } } } }, - "768f1edc30be691acf862ef51ac671aea25b9cd46242ab8b30f04715991dffa1": { - "buildId": "768f1edc30be691acf862ef51ac671aea25b9cd46242ab8b30f04715991dffa1", + "a1f1b0ff3e2e50a79885540efda19e094d9d5763529d1baeabc5f331981ff287": { + "buildId": "a1f1b0ff3e2e50a79885540efda19e094d9d5763529d1baeabc5f331981ff287", "build": { - "img": "oisupport/staging-mips64le:768f1edc30be691acf862ef51ac671aea25b9cd46242ab8b30f04715991dffa1", - "resolved": { - "schemaVersion": 2, - "mediaType": "application/vnd.oci.image.index.v1+json", - "manifests": [ - { - "mediaType": "application/vnd.oci.image.manifest.v1+json", - "digest": "sha256:388eed10bf5614e88ae1e2b2c1d237cbef877a07858125415556e3d9edff526d", - "size": 610, - "annotations": { - "com.docker.official-images.bashbrew.arch": "mips64le", - "org.opencontainers.image.base.name": "scratch", - "org.opencontainers.image.created": "2024-02-28T00:44:18Z", - "org.opencontainers.image.ref.name": "oisupport/staging-mips64le:768f1edc30be691acf862ef51ac671aea25b9cd46242ab8b30f04715991dffa1@sha256:388eed10bf5614e88ae1e2b2c1d237cbef877a07858125415556e3d9edff526d", - "org.opencontainers.image.revision": "ea5639e7af6b21b81230ccaba4c05ccb2d80b9e3", - "org.opencontainers.image.source": "https://github.com/docker-library/busybox.git", - "org.opencontainers.image.url": "https://hub.docker.com/_/busybox", - "org.opencontainers.image.version": "1.36.1-uclibc" + "img": "oisupport/staging-s390x:a1f1b0ff3e2e50a79885540efda19e094d9d5763529d1baeabc5f331981ff287", + "resolved": null, + "sourceId": "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e", + "arch": "s390x", + "parents": { + "golang:1.21": "sha256:661ae48ed637fda3e3a66c908949e86bfa619513959142c0431f50b4afd116dc", + "infosiftr/moby:latest": "sha256:2a1a17d1d62499db28a53457f6ec8ddde2e30a8ea3f0c8794c7496a5ee43c1a7" + }, + "resolvedParents": { + "golang:1.21": { + "schemaVersion": 2, + "mediaType": "application/vnd.oci.image.index.v1+json", + "manifests": [ + { + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "digest": "sha256:661ae48ed637fda3e3a66c908949e86bfa619513959142c0431f50b4afd116dc", + "size": 2323, + "annotations": { + "com.docker.official-images.bashbrew.arch": "s390x", + "org.opencontainers.image.base.digest": "sha256:af65546aef0be20475bd81e286ca22b7ec1c1f436b29f08a6d94103f81830110", + "org.opencontainers.image.base.name": "buildpack-deps:bookworm-scm", + "org.opencontainers.image.created": "2024-08-07T02:15:39Z", + "org.opencontainers.image.ref.name": "golang:1.21@sha256:661ae48ed637fda3e3a66c908949e86bfa619513959142c0431f50b4afd116dc", + "org.opencontainers.image.revision": "aaed3270d35c8a4c8378d72a380890bafffcbec6", + "org.opencontainers.image.source": "https://github.com/docker-library/golang.git#aaed3270d35c8a4c8378d72a380890bafffcbec6:1.21/bookworm", + "org.opencontainers.image.url": "https://hub.docker.com/_/golang", + "org.opencontainers.image.version": "1.21.13-bookworm" + }, + "platform": { + "architecture": "s390x", + "os": "linux" + } }, - "platform": { - "architecture": "mips64le", - "os": "linux" + { + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "digest": "sha256:a9c54efd3c92b871a6d4bd5582ac30204fccb0facce0e8a686956c39c9cbd40e", + "size": 842, + "annotations": { + "com.docker.official-images.bashbrew.arch": "s390x", + "org.opencontainers.image.ref.name": "golang:1.21@sha256:a9c54efd3c92b871a6d4bd5582ac30204fccb0facce0e8a686956c39c9cbd40e", + "vnd.docker.reference.digest": "sha256:661ae48ed637fda3e3a66c908949e86bfa619513959142c0431f50b4afd116dc", + "vnd.docker.reference.type": "attestation-manifest" + }, + "platform": { + "architecture": "unknown", + "os": "unknown" + } } + ], + "annotations": { + "org.opencontainers.image.ref.name": "golang:1.21@sha256:4746d26432a9117a5f58e95cb9f954ddf0de128e9d5816886514199316e4a2fb" + } + }, + "infosiftr/moby:latest": { + "schemaVersion": 2, + "mediaType": "application/vnd.oci.image.index.v1+json", + "manifests": [ + { + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "digest": "sha256:2a1a17d1d62499db28a53457f6ec8ddde2e30a8ea3f0c8794c7496a5ee43c1a7", + "size": 3061, + "annotations": { + "com.docker.official-images.bashbrew.arch": "s390x", + "org.opencontainers.image.base.digest": "sha256:79f9102397454866572f1c264b6c8807ffeda8603c084e2e358674b00d1574ae", + "org.opencontainers.image.base.name": "debian:trixie-slim", + "org.opencontainers.image.created": "2026-08-05T17:42:54Z", + "org.opencontainers.image.ref.name": "infosiftr/moby:latest@sha256:2a1a17d1d62499db28a53457f6ec8ddde2e30a8ea3f0c8794c7496a5ee43c1a7", + "org.opencontainers.image.revision": "dc881c6dcd338ab8286555023d54fcee8e53e3ac", + "org.opencontainers.image.source": "https://github.com/tianon/dockerfiles.git#dc881c6dcd338ab8286555023d54fcee8e53e3ac:infosiftr-moby", + "org.opencontainers.image.url": "https://hub.docker.com/r/infosiftr/moby", + "org.opencontainers.image.version": "23.0.18" + }, + "platform": { + "architecture": "s390x", + "os": "linux" + } + }, + { + "mediaType": "application/vnd.oci.image.manifest.v1+json", + "digest": "sha256:b6610c71f687d14949ce0d081844392746bbde812ef43d9d79c5ea398b8f7149", + "size": 838, + "annotations": { + "com.docker.official-images.bashbrew.arch": "s390x", + "org.opencontainers.image.ref.name": "infosiftr/moby:latest@sha256:b6610c71f687d14949ce0d081844392746bbde812ef43d9d79c5ea398b8f7149", + "vnd.docker.reference.digest": "sha256:2a1a17d1d62499db28a53457f6ec8ddde2e30a8ea3f0c8794c7496a5ee43c1a7", + "vnd.docker.reference.type": "attestation-manifest" + }, + "platform": { + "architecture": "unknown", + "os": "unknown" + } + } + ], + "annotations": { + "org.opencontainers.image.ref.name": "infosiftr/moby:latest@sha256:8dd56beee021d11ff3dd629689492a27dc5ee1e61b658c43ebc4730e64d60d8f" } - ], - "annotations": { - "org.opencontainers.image.ref.name": "oisupport/staging-mips64le:768f1edc30be691acf862ef51ac671aea25b9cd46242ab8b30f04715991dffa1@sha256:8250f61862e1d6ea51f35f443b15491e707c1cb3cbef76219ad1a2de424b22b2" } }, - "sourceId": "b0bb94feb28087aee21e4a4c0b9cd51b0ba4737c166033e34fa245433b0f7447", - "arch": "mips64le", - "parents": {}, - "resolvedParents": {} + "hostArch": "s390x", + "crossHostArches": [ + "amd64", + "arm32v7", + "arm64v8", + "i386", + "mips64le", + "ppc64le", + "s390x" + ] }, "source": { - "sourceId": "b0bb94feb28087aee21e4a4c0b9cd51b0ba4737c166033e34fa245433b0f7447", - "reproducibleGitChecksum": "acfeadf772789a80427f642691efcb0daeeabe73ce4753318f25760c3ead6e18", + "sourceId": "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e", + "reproducibleGitChecksum": "f32e9b7ab78fecd14f065cecec4ea538bafa31f1d46d91ded8b56231c8abc4f8", "entries": [ { - "GitRepo": "https://github.com/docker-library/busybox.git", - "GitFetch": "refs/heads/dist-mips64le", - "GitCommit": "ea5639e7af6b21b81230ccaba4c05ccb2d80b9e3", - "Directory": "latest/uclibc/mips64le", - "File": "index.json", - "Builder": "oci-import", - "SOURCE_DATE_EPOCH": 1709081058 + "GitRepo": "https://github.com/tianon/dockerfiles.git", + "GitFetch": "refs/heads/master", + "GitCommit": "386636e197ba347441c97db8edcfad9113e41365", + "Directory": "buildkit", + "File": "Dockerfile", + "Builder": "buildkit", + "SOURCE_DATE_EPOCH": 1716334145 } ], "arches": { - "mips64le": { + "s390x": { "tags": [ - "busybox:1.36.1-uclibc", - "busybox:1.36-uclibc", - "busybox:1-uclibc", - "busybox:stable-uclibc", - "busybox:uclibc" + "buildkit:0.13.2", + "buildkit:0.13", + "buildkit:0", + "buildkit:latest" ], "archTags": [ - "mips64le/busybox:1.36.1-uclibc", - "mips64le/busybox:1.36-uclibc", - "mips64le/busybox:1-uclibc", - "mips64le/busybox:stable-uclibc", - "mips64le/busybox:uclibc" + "s390x/buildkit:0.13.2", + "s390x/buildkit:0.13", + "s390x/buildkit:0", + "s390x/buildkit:latest" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "golang:1.21", + "Platform": "$BUILDPLATFORM", + "Kind": "FROM" + }, + { + "From": "infosiftr/moby:latest", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", - "platformString": "linux/mips64le", + "platformString": "linux/s390x", "platform": { - "architecture": "mips64le", + "architecture": "s390x", "os": "linux" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "golang:1.21", + "Platform": "$BUILDPLATFORM", + "Kind": "FROM", + "sourceId": null, + "pin": null + }, + { + "From": "infosiftr/moby:latest", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": null, + "crossHostArches": null } } } @@ -5326,21 +7074,27 @@ "infosiftr-moby:amd64" ], "archTags": [], - "froms": [ - "debian:bookworm-slim" + "dockerfileParents": [ + { + "From": "debian:bookworm-slim", + "Kind": "FROM" + } ], - "lastStageFrom": "debian:bookworm-slim", "platformString": "linux/amd64", "platform": { "architecture": "amd64", "os": "linux" }, - "parents": { - "debian:bookworm-slim": { + "parents": [ + { + "From": "debian:bookworm-slim", + "Kind": "FROM", "sourceId": null, "pin": "sha256:155280b00ee0133250f7159b567a07d7cd03b1645714c3a7458b2287b0ca83cb" } - } + ], + "hostArch": "amd64", + "crossHostArches": null } } } @@ -5449,22 +7203,28 @@ "infosiftr-moby:arm32v5" ], "archTags": [], - "froms": [ - "debian:bookworm-slim" + "dockerfileParents": [ + { + "From": "debian:bookworm-slim", + "Kind": "FROM" + } ], - "lastStageFrom": "debian:bookworm-slim", "platformString": "linux/arm/v5", "platform": { "architecture": "arm", "os": "linux", "variant": "v5" }, - "parents": { - "debian:bookworm-slim": { + "parents": [ + { + "From": "debian:bookworm-slim", + "Kind": "FROM", "sourceId": null, "pin": "sha256:155280b00ee0133250f7159b567a07d7cd03b1645714c3a7458b2287b0ca83cb" } - } + ], + "hostArch": "arm32v5", + "crossHostArches": null } } } @@ -5573,22 +7333,28 @@ "infosiftr-moby:arm32v7" ], "archTags": [], - "froms": [ - "debian:bookworm-slim" + "dockerfileParents": [ + { + "From": "debian:bookworm-slim", + "Kind": "FROM" + } ], - "lastStageFrom": "debian:bookworm-slim", "platformString": "linux/arm/v7", "platform": { "architecture": "arm", "os": "linux", "variant": "v7" }, - "parents": { - "debian:bookworm-slim": { + "parents": [ + { + "From": "debian:bookworm-slim", + "Kind": "FROM", "sourceId": null, "pin": "sha256:155280b00ee0133250f7159b567a07d7cd03b1645714c3a7458b2287b0ca83cb" } - } + ], + "hostArch": "arm32v7", + "crossHostArches": null } } } @@ -5697,22 +7463,28 @@ "infosiftr-moby:arm64v8" ], "archTags": [], - "froms": [ - "debian:bookworm-slim" + "dockerfileParents": [ + { + "From": "debian:bookworm-slim", + "Kind": "FROM" + } ], - "lastStageFrom": "debian:bookworm-slim", "platformString": "linux/arm64/v8", "platform": { "architecture": "arm64", "os": "linux", "variant": "v8" }, - "parents": { - "debian:bookworm-slim": { + "parents": [ + { + "From": "debian:bookworm-slim", + "Kind": "FROM", "sourceId": null, "pin": "sha256:155280b00ee0133250f7159b567a07d7cd03b1645714c3a7458b2287b0ca83cb" } - } + ], + "hostArch": "arm64v8", + "crossHostArches": null } } } @@ -5819,21 +7591,27 @@ "infosiftr-moby:i386" ], "archTags": [], - "froms": [ - "debian:bookworm-slim" + "dockerfileParents": [ + { + "From": "debian:bookworm-slim", + "Kind": "FROM" + } ], - "lastStageFrom": "debian:bookworm-slim", "platformString": "linux/386", "platform": { "architecture": "386", "os": "linux" }, - "parents": { - "debian:bookworm-slim": { + "parents": [ + { + "From": "debian:bookworm-slim", + "Kind": "FROM", "sourceId": null, "pin": "sha256:155280b00ee0133250f7159b567a07d7cd03b1645714c3a7458b2287b0ca83cb" } - } + ], + "hostArch": "i386", + "crossHostArches": null } } } @@ -5940,21 +7718,27 @@ "infosiftr-moby:mips64le" ], "archTags": [], - "froms": [ - "debian:bookworm-slim" + "dockerfileParents": [ + { + "From": "debian:bookworm-slim", + "Kind": "FROM" + } ], - "lastStageFrom": "debian:bookworm-slim", "platformString": "linux/mips64le", "platform": { "architecture": "mips64le", "os": "linux" }, - "parents": { - "debian:bookworm-slim": { + "parents": [ + { + "From": "debian:bookworm-slim", + "Kind": "FROM", "sourceId": null, "pin": "sha256:155280b00ee0133250f7159b567a07d7cd03b1645714c3a7458b2287b0ca83cb" } - } + ], + "hostArch": "mips64le", + "crossHostArches": null } } } @@ -6061,21 +7845,27 @@ "infosiftr-moby:ppc64le" ], "archTags": [], - "froms": [ - "debian:bookworm-slim" + "dockerfileParents": [ + { + "From": "debian:bookworm-slim", + "Kind": "FROM" + } ], - "lastStageFrom": "debian:bookworm-slim", "platformString": "linux/ppc64le", "platform": { "architecture": "ppc64le", "os": "linux" }, - "parents": { - "debian:bookworm-slim": { + "parents": [ + { + "From": "debian:bookworm-slim", + "Kind": "FROM", "sourceId": null, "pin": "sha256:155280b00ee0133250f7159b567a07d7cd03b1645714c3a7458b2287b0ca83cb" } - } + ], + "hostArch": "ppc64le", + "crossHostArches": null } } } @@ -6182,21 +7972,27 @@ "infosiftr-moby:s390x" ], "archTags": [], - "froms": [ - "debian:bookworm-slim" + "dockerfileParents": [ + { + "From": "debian:bookworm-slim", + "Kind": "FROM" + } ], - "lastStageFrom": "debian:bookworm-slim", "platformString": "linux/s390x", "platform": { "architecture": "s390x", "os": "linux" }, - "parents": { - "debian:bookworm-slim": { + "parents": [ + { + "From": "debian:bookworm-slim", + "Kind": "FROM", "sourceId": null, "pin": "sha256:155280b00ee0133250f7159b567a07d7cd03b1645714c3a7458b2287b0ca83cb" } - } + ], + "hostArch": "s390x", + "crossHostArches": null } } } @@ -6303,21 +8099,27 @@ "infosiftr-moby:riscv64" ], "archTags": [], - "froms": [ - "debian:unstable-slim" + "dockerfileParents": [ + { + "From": "debian:unstable-slim", + "Kind": "FROM" + } ], - "lastStageFrom": "debian:unstable-slim", "platformString": "linux/riscv64", "platform": { "architecture": "riscv64", "os": "linux" }, - "parents": { - "debian:unstable-slim": { + "parents": [ + { + "From": "debian:unstable-slim", + "Kind": "FROM", "sourceId": null, "pin": "sha256:8ab93b5dec6c19b4a45fbfdebc55c5d08ce7d39a90dc66cc273440ba3a1a5af0" } - } + ], + "hostArch": "riscv64", + "crossHostArches": null } } } diff --git a/.test/library/buildkit b/.test/library/buildkit new file mode 100644 index 0000000..3254035 --- /dev/null +++ b/.test/library/buildkit @@ -0,0 +1,8 @@ +Maintainers: Tianon Gravi (@tianon) +GitRepo: https://github.com/tianon/dockerfiles.git +Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, mips64le, ppc64le, riscv64, s390x +Builder: buildkit + +Tags: 0.13.2, 0.13, 0, latest +GitCommit: 386636e197ba347441c97db8edcfad9113e41365 +Directory: buildkit diff --git a/.test/meta-commands/out.sh b/.test/meta-commands/out.sh index 6313ad0..722216f 100644 --- a/.test/meta-commands/out.sh +++ b/.test/meta-commands/out.sh @@ -87,7 +87,7 @@ docker push 'oisupport/staging-windows-amd64:9b405cfa5b88ba65121aabdb95ae90fd2e1 # # -build='{"buildId":"191402ad0feacf03daf9d52a492207e73ef08b0bd17265043aea13aa27e2bb3f","build":{"img":"oisupport/staging-amd64:191402ad0feacf03daf9d52a492207e73ef08b0bd17265043aea13aa27e2bb3f","resolved":{"schemaVersion":2,"mediaType":"application/vnd.oci.image.index.v1+json","manifests":[{"mediaType":"application/vnd.oci.image.manifest.v1+json","digest":"sha256:4be429a5fbb2e71ae7958bfa558bc637cf3a61baf40a708cb8fff532b39e52d0","size":610,"annotations":{"com.docker.official-images.bashbrew.arch":"amd64","org.opencontainers.image.base.name":"scratch","org.opencontainers.image.created":"2024-02-28T00:44:18Z","org.opencontainers.image.ref.name":"oisupport/staging-amd64:191402ad0feacf03daf9d52a492207e73ef08b0bd17265043aea13aa27e2bb3f@sha256:4be429a5fbb2e71ae7958bfa558bc637cf3a61baf40a708cb8fff532b39e52d0","org.opencontainers.image.revision":"d0b7d566eb4f1fa9933984e6fc04ab11f08f4592","org.opencontainers.image.source":"https://github.com/docker-library/busybox.git","org.opencontainers.image.url":"https://hub.docker.com/_/busybox","org.opencontainers.image.version":"1.36.1-glibc"},"platform":{"architecture":"amd64","os":"linux"}}],"annotations":{"org.opencontainers.image.ref.name":"oisupport/staging-amd64:191402ad0feacf03daf9d52a492207e73ef08b0bd17265043aea13aa27e2bb3f@sha256:70a227928672dffb7d24880bad1a705b527fab650f7503c191e48a209c4a0d10"}},"sourceId":"df39fa95e66c7e19e56af0f9dfb8b79b15a0422a9b44eb0f16274d3f1f8939a2","arch":"amd64","parents":{},"resolvedParents":{}},"source":{"sourceId":"df39fa95e66c7e19e56af0f9dfb8b79b15a0422a9b44eb0f16274d3f1f8939a2","reproducibleGitChecksum":"17e76ce3a5b47357c5724738db231ed2477c94d43df69ce34ae0871c99f7de78","entries":[{"GitRepo":"https://github.com/docker-library/busybox.git","GitFetch":"refs/heads/dist-amd64","GitCommit":"d0b7d566eb4f1fa9933984e6fc04ab11f08f4592","Directory":"latest/glibc/amd64","File":"index.json","Builder":"oci-import","SOURCE_DATE_EPOCH":1709081058}],"arches":{"amd64":{"tags":["busybox:1.36.1","busybox:1.36","busybox:1","busybox:stable","busybox:latest","busybox:1.36.1-glibc","busybox:1.36-glibc","busybox:1-glibc","busybox:stable-glibc","busybox:glibc"],"archTags":["amd64/busybox:1.36.1","amd64/busybox:1.36","amd64/busybox:1","amd64/busybox:stable","amd64/busybox:latest","amd64/busybox:1.36.1-glibc","amd64/busybox:1.36-glibc","amd64/busybox:1-glibc","amd64/busybox:stable-glibc","amd64/busybox:glibc"],"froms":["scratch"],"lastStageFrom":"scratch","platformString":"linux/amd64","platform":{"architecture":"amd64","os":"linux"},"parents":{"scratch":{"sourceId":null,"pin":null}}}}}}' +build='{"buildId":"191402ad0feacf03daf9d52a492207e73ef08b0bd17265043aea13aa27e2bb3f","build":{"img":"oisupport/staging-amd64:191402ad0feacf03daf9d52a492207e73ef08b0bd17265043aea13aa27e2bb3f","resolved":{"schemaVersion":2,"mediaType":"application/vnd.oci.image.index.v1+json","manifests":[{"mediaType":"application/vnd.oci.image.manifest.v1+json","digest":"sha256:4be429a5fbb2e71ae7958bfa558bc637cf3a61baf40a708cb8fff532b39e52d0","size":610,"annotations":{"com.docker.official-images.bashbrew.arch":"amd64","org.opencontainers.image.base.name":"scratch","org.opencontainers.image.created":"2024-02-28T00:44:18Z","org.opencontainers.image.ref.name":"oisupport/staging-amd64:191402ad0feacf03daf9d52a492207e73ef08b0bd17265043aea13aa27e2bb3f@sha256:4be429a5fbb2e71ae7958bfa558bc637cf3a61baf40a708cb8fff532b39e52d0","org.opencontainers.image.revision":"d0b7d566eb4f1fa9933984e6fc04ab11f08f4592","org.opencontainers.image.source":"https://github.com/docker-library/busybox.git","org.opencontainers.image.url":"https://hub.docker.com/_/busybox","org.opencontainers.image.version":"1.36.1-glibc"},"platform":{"architecture":"amd64","os":"linux"}}],"annotations":{"org.opencontainers.image.ref.name":"oisupport/staging-amd64:191402ad0feacf03daf9d52a492207e73ef08b0bd17265043aea13aa27e2bb3f@sha256:70a227928672dffb7d24880bad1a705b527fab650f7503c191e48a209c4a0d10"}},"sourceId":"df39fa95e66c7e19e56af0f9dfb8b79b15a0422a9b44eb0f16274d3f1f8939a2","arch":"amd64","parents":{},"resolvedParents":{}},"source":{"sourceId":"df39fa95e66c7e19e56af0f9dfb8b79b15a0422a9b44eb0f16274d3f1f8939a2","reproducibleGitChecksum":"17e76ce3a5b47357c5724738db231ed2477c94d43df69ce34ae0871c99f7de78","entries":[{"GitRepo":"https://github.com/docker-library/busybox.git","GitFetch":"refs/heads/dist-amd64","GitCommit":"d0b7d566eb4f1fa9933984e6fc04ab11f08f4592","Directory":"latest/glibc/amd64","File":"index.json","Builder":"oci-import","SOURCE_DATE_EPOCH":1709081058}],"arches":{"amd64":{"tags":["busybox:1.36.1","busybox:1.36","busybox:1","busybox:stable","busybox:latest","busybox:1.36.1-glibc","busybox:1.36-glibc","busybox:1-glibc","busybox:stable-glibc","busybox:glibc"],"archTags":["amd64/busybox:1.36.1","amd64/busybox:1.36","amd64/busybox:1","amd64/busybox:stable","amd64/busybox:latest","amd64/busybox:1.36.1-glibc","amd64/busybox:1.36-glibc","amd64/busybox:1-glibc","amd64/busybox:stable-glibc","amd64/busybox:glibc"],"dockerfileParents":[{"From":"scratch","Kind":"FROM"}],"platformString":"linux/amd64","platform":{"architecture":"amd64","os":"linux"},"parents":[{"From":"scratch","Kind":"FROM","sourceId":null,"pin":null}],"hostArch":"amd64","crossHostArches":null}}}}' "$BASHBREW_META_SCRIPTS/helpers/oci-import.sh" <<<"$build" temp # SBOM mv temp temp.orig diff --git a/.test/meta-commands/test.jq b/.test/meta-commands/test.jq index 430f6b2..e1e0e02 100644 --- a/.test/meta-commands/test.jq +++ b/.test/meta-commands/test.jq @@ -1,3 +1,4 @@ +include "doi"; include "meta"; [ first(.[] | select(normalized_builder == "buildkit")), diff --git a/.test/meta-queue/out.json b/.test/meta-queue/out.json index bc6a504..c8f46e5 100644 --- a/.test/meta-queue/out.json +++ b/.test/meta-queue/out.json @@ -14,6 +14,7 @@ } } }, + "crossHostArches": [], "identifier": "fake:arm32v7-null-0-1970-01-01T00:00:00Z" }, { @@ -31,6 +32,7 @@ } } }, + "crossHostArches": [], "identifier": "fake:arm32v7-null-1-1970-01-01T00:00:00Z" }, { @@ -48,6 +50,7 @@ } } }, + "crossHostArches": [], "identifier": "fake:arm32v7-null-2-1969-12-31T23:00:00Z" }, { @@ -65,6 +68,7 @@ } } }, + "crossHostArches": [], "identifier": "fake:arm32v7-null-3-1969-12-31T22:00:00Z" }, { @@ -82,6 +86,7 @@ } } }, + "crossHostArches": [], "identifier": "fake:arm32v7-null-4-1969-12-31T20:00:00Z" }, { @@ -99,6 +104,7 @@ } } }, + "crossHostArches": [], "identifier": "fake:arm32v7-null-5-1969-12-31T16:00:00Z" }, { @@ -116,6 +122,7 @@ } } }, + "crossHostArches": [], "identifier": "fake:arm32v7-null-6-1969-12-31T08:00:00Z" }, { @@ -133,6 +140,7 @@ } } }, + "crossHostArches": [], "identifier": "fake:arm32v7-null-7-1969-12-30T16:00:00Z" }, { @@ -150,6 +158,7 @@ } } }, + "crossHostArches": [], "identifier": "fake:arm32v7-null-8-1969-12-30T16:00:00Z" } ] diff --git a/.test/oci-import/out.sh b/.test/oci-import/out.sh index cda1d7c..8f569e9 100644 --- a/.test/oci-import/out.sh +++ b/.test/oci-import/out.sh @@ -1,2 +1,2 @@ -build='{"buildId":"191402ad0feacf03daf9d52a492207e73ef08b0bd17265043aea13aa27e2bb3f","build":{"img":"oisupport/staging-amd64:191402ad0feacf03daf9d52a492207e73ef08b0bd17265043aea13aa27e2bb3f","resolved":{"schemaVersion":2,"mediaType":"application/vnd.oci.image.index.v1+json","manifests":[{"mediaType":"application/vnd.oci.image.manifest.v1+json","digest":"sha256:4be429a5fbb2e71ae7958bfa558bc637cf3a61baf40a708cb8fff532b39e52d0","size":610,"annotations":{"com.docker.official-images.bashbrew.arch":"amd64","org.opencontainers.image.base.name":"scratch","org.opencontainers.image.created":"2024-02-28T00:44:18Z","org.opencontainers.image.ref.name":"oisupport/staging-amd64:191402ad0feacf03daf9d52a492207e73ef08b0bd17265043aea13aa27e2bb3f@sha256:4be429a5fbb2e71ae7958bfa558bc637cf3a61baf40a708cb8fff532b39e52d0","org.opencontainers.image.revision":"d0b7d566eb4f1fa9933984e6fc04ab11f08f4592","org.opencontainers.image.source":"https://github.com/docker-library/busybox.git","org.opencontainers.image.url":"https://hub.docker.com/_/busybox","org.opencontainers.image.version":"1.36.1-glibc"},"platform":{"architecture":"amd64","os":"linux"}}],"annotations":{"org.opencontainers.image.ref.name":"oisupport/staging-amd64:191402ad0feacf03daf9d52a492207e73ef08b0bd17265043aea13aa27e2bb3f@sha256:70a227928672dffb7d24880bad1a705b527fab650f7503c191e48a209c4a0d10"}},"sourceId":"df39fa95e66c7e19e56af0f9dfb8b79b15a0422a9b44eb0f16274d3f1f8939a2","arch":"amd64","parents":{},"resolvedParents":{}},"source":{"sourceId":"df39fa95e66c7e19e56af0f9dfb8b79b15a0422a9b44eb0f16274d3f1f8939a2","reproducibleGitChecksum":"17e76ce3a5b47357c5724738db231ed2477c94d43df69ce34ae0871c99f7de78","entries":[{"GitRepo":"https://github.com/docker-library/busybox.git","GitFetch":"refs/heads/dist-amd64","GitCommit":"d0b7d566eb4f1fa9933984e6fc04ab11f08f4592","Directory":"latest/glibc/amd64","File":"index.json","Builder":"oci-import","SOURCE_DATE_EPOCH":1709081058}],"arches":{"amd64":{"tags":["busybox:1.36.1","busybox:1.36","busybox:1","busybox:stable","busybox:latest","busybox:1.36.1-glibc","busybox:1.36-glibc","busybox:1-glibc","busybox:stable-glibc","busybox:glibc"],"archTags":["amd64/busybox:1.36.1","amd64/busybox:1.36","amd64/busybox:1","amd64/busybox:stable","amd64/busybox:latest","amd64/busybox:1.36.1-glibc","amd64/busybox:1.36-glibc","amd64/busybox:1-glibc","amd64/busybox:stable-glibc","amd64/busybox:glibc"],"froms":["scratch"],"lastStageFrom":"scratch","platformString":"linux/amd64","platform":{"architecture":"amd64","os":"linux"},"parents":{"scratch":{"sourceId":null,"pin":null}}}}}}' +build='{"buildId":"191402ad0feacf03daf9d52a492207e73ef08b0bd17265043aea13aa27e2bb3f","build":{"img":"oisupport/staging-amd64:191402ad0feacf03daf9d52a492207e73ef08b0bd17265043aea13aa27e2bb3f","resolved":{"schemaVersion":2,"mediaType":"application/vnd.oci.image.index.v1+json","manifests":[{"mediaType":"application/vnd.oci.image.manifest.v1+json","digest":"sha256:4be429a5fbb2e71ae7958bfa558bc637cf3a61baf40a708cb8fff532b39e52d0","size":610,"annotations":{"com.docker.official-images.bashbrew.arch":"amd64","org.opencontainers.image.base.name":"scratch","org.opencontainers.image.created":"2024-02-28T00:44:18Z","org.opencontainers.image.ref.name":"oisupport/staging-amd64:191402ad0feacf03daf9d52a492207e73ef08b0bd17265043aea13aa27e2bb3f@sha256:4be429a5fbb2e71ae7958bfa558bc637cf3a61baf40a708cb8fff532b39e52d0","org.opencontainers.image.revision":"d0b7d566eb4f1fa9933984e6fc04ab11f08f4592","org.opencontainers.image.source":"https://github.com/docker-library/busybox.git","org.opencontainers.image.url":"https://hub.docker.com/_/busybox","org.opencontainers.image.version":"1.36.1-glibc"},"platform":{"architecture":"amd64","os":"linux"}}],"annotations":{"org.opencontainers.image.ref.name":"oisupport/staging-amd64:191402ad0feacf03daf9d52a492207e73ef08b0bd17265043aea13aa27e2bb3f@sha256:70a227928672dffb7d24880bad1a705b527fab650f7503c191e48a209c4a0d10"}},"sourceId":"df39fa95e66c7e19e56af0f9dfb8b79b15a0422a9b44eb0f16274d3f1f8939a2","arch":"amd64","parents":{},"resolvedParents":{}},"source":{"sourceId":"df39fa95e66c7e19e56af0f9dfb8b79b15a0422a9b44eb0f16274d3f1f8939a2","reproducibleGitChecksum":"17e76ce3a5b47357c5724738db231ed2477c94d43df69ce34ae0871c99f7de78","entries":[{"GitRepo":"https://github.com/docker-library/busybox.git","GitFetch":"refs/heads/dist-amd64","GitCommit":"d0b7d566eb4f1fa9933984e6fc04ab11f08f4592","Directory":"latest/glibc/amd64","File":"index.json","Builder":"oci-import","SOURCE_DATE_EPOCH":1709081058}],"arches":{"amd64":{"tags":["busybox:1.36.1","busybox:1.36","busybox:1","busybox:stable","busybox:latest","busybox:1.36.1-glibc","busybox:1.36-glibc","busybox:1-glibc","busybox:stable-glibc","busybox:glibc"],"archTags":["amd64/busybox:1.36.1","amd64/busybox:1.36","amd64/busybox:1","amd64/busybox:stable","amd64/busybox:latest","amd64/busybox:1.36.1-glibc","amd64/busybox:1.36-glibc","amd64/busybox:1-glibc","amd64/busybox:stable-glibc","amd64/busybox:glibc"],"dockerfileParents":[{"From":"scratch","Kind":"FROM"}],"platformString":"linux/amd64","platform":{"architecture":"amd64","os":"linux"},"parents":[{"From":"scratch","Kind":"FROM","sourceId":null,"pin":null}],"hostArch":"amd64","crossHostArches":null}}}}' "$BASHBREW_META_SCRIPTS/helpers/oci-import.sh" <<<"$build" temp diff --git a/.test/oci-import/test.jq b/.test/oci-import/test.jq index 24291fc..7fab631 100644 --- a/.test/oci-import/test.jq +++ b/.test/oci-import/test.jq @@ -1,3 +1,4 @@ +include "doi"; include "meta"; first(.[] | select(normalized_builder == "oci-import")) diff --git a/.test/sources.json b/.test/sources.json index 3cc4daf..48a56dd 100644 --- a/.test/sources.json +++ b/.test/sources.json @@ -29,21 +29,27 @@ "amd64/docker:cli", "amd64/docker:24.0.7-cli-alpine3.18" ], - "froms": [ - "alpine:3.18" + "dockerfileParents": [ + { + "From": "alpine:3.18", + "Kind": "FROM" + } ], - "lastStageFrom": "alpine:3.18", "platformString": "linux/amd64", "platform": { "architecture": "amd64", "os": "linux" }, - "parents": { - "alpine:3.18": { + "parents": [ + { + "From": "alpine:3.18", + "Kind": "FROM", "sourceId": null, "pin": "sha256:34871e7290500828b39e22294660bee86d966bc0017544e848dd9a255cdf59e0" } - } + ], + "hostArch": "amd64", + "crossHostArches": null }, "arm32v6": { "tags": [ @@ -60,22 +66,28 @@ "arm32v6/docker:cli", "arm32v6/docker:24.0.7-cli-alpine3.18" ], - "froms": [ - "alpine:3.18" + "dockerfileParents": [ + { + "From": "alpine:3.18", + "Kind": "FROM" + } ], - "lastStageFrom": "alpine:3.18", "platformString": "linux/arm/v6", "platform": { "architecture": "arm", "os": "linux", "variant": "v6" }, - "parents": { - "alpine:3.18": { + "parents": [ + { + "From": "alpine:3.18", + "Kind": "FROM", "sourceId": null, "pin": "sha256:34871e7290500828b39e22294660bee86d966bc0017544e848dd9a255cdf59e0" } - } + ], + "hostArch": "arm32v6", + "crossHostArches": null }, "arm32v7": { "tags": [ @@ -92,22 +104,28 @@ "arm32v7/docker:cli", "arm32v7/docker:24.0.7-cli-alpine3.18" ], - "froms": [ - "alpine:3.18" + "dockerfileParents": [ + { + "From": "alpine:3.18", + "Kind": "FROM" + } ], - "lastStageFrom": "alpine:3.18", "platformString": "linux/arm/v7", "platform": { "architecture": "arm", "os": "linux", "variant": "v7" }, - "parents": { - "alpine:3.18": { + "parents": [ + { + "From": "alpine:3.18", + "Kind": "FROM", "sourceId": null, "pin": "sha256:34871e7290500828b39e22294660bee86d966bc0017544e848dd9a255cdf59e0" } - } + ], + "hostArch": "arm32v7", + "crossHostArches": null }, "arm64v8": { "tags": [ @@ -124,22 +142,28 @@ "arm64v8/docker:cli", "arm64v8/docker:24.0.7-cli-alpine3.18" ], - "froms": [ - "alpine:3.18" + "dockerfileParents": [ + { + "From": "alpine:3.18", + "Kind": "FROM" + } ], - "lastStageFrom": "alpine:3.18", "platformString": "linux/arm64/v8", "platform": { "architecture": "arm64", "os": "linux", "variant": "v8" }, - "parents": { - "alpine:3.18": { + "parents": [ + { + "From": "alpine:3.18", + "Kind": "FROM", "sourceId": null, "pin": "sha256:34871e7290500828b39e22294660bee86d966bc0017544e848dd9a255cdf59e0" } - } + ], + "hostArch": "arm64v8", + "crossHostArches": null } } }, @@ -183,21 +207,27 @@ "amd64/docker:latest", "amd64/docker:24.0.7-alpine3.18" ], - "froms": [ - "docker:24-cli" + "dockerfileParents": [ + { + "From": "docker:24-cli", + "Kind": "FROM" + } ], - "lastStageFrom": "docker:24-cli", "platformString": "linux/amd64", "platform": { "architecture": "amd64", "os": "linux" }, - "parents": { - "docker:24-cli": { + "parents": [ + { + "From": "docker:24-cli", + "Kind": "FROM", "sourceId": "76d7d7d66aeb62eb797c8475407e6cd2b6ad262957a622035f81fb93e532b36b", "pin": null } - } + ], + "hostArch": "amd64", + "crossHostArches": null }, "arm32v6": { "tags": [ @@ -224,22 +254,28 @@ "arm32v6/docker:latest", "arm32v6/docker:24.0.7-alpine3.18" ], - "froms": [ - "docker:24-cli" + "dockerfileParents": [ + { + "From": "docker:24-cli", + "Kind": "FROM" + } ], - "lastStageFrom": "docker:24-cli", "platformString": "linux/arm/v6", "platform": { "architecture": "arm", "os": "linux", "variant": "v6" }, - "parents": { - "docker:24-cli": { + "parents": [ + { + "From": "docker:24-cli", + "Kind": "FROM", "sourceId": "76d7d7d66aeb62eb797c8475407e6cd2b6ad262957a622035f81fb93e532b36b", "pin": null } - } + ], + "hostArch": "arm32v6", + "crossHostArches": null }, "arm32v7": { "tags": [ @@ -266,22 +302,28 @@ "arm32v7/docker:latest", "arm32v7/docker:24.0.7-alpine3.18" ], - "froms": [ - "docker:24-cli" + "dockerfileParents": [ + { + "From": "docker:24-cli", + "Kind": "FROM" + } ], - "lastStageFrom": "docker:24-cli", "platformString": "linux/arm/v7", "platform": { "architecture": "arm", "os": "linux", "variant": "v7" }, - "parents": { - "docker:24-cli": { + "parents": [ + { + "From": "docker:24-cli", + "Kind": "FROM", "sourceId": "76d7d7d66aeb62eb797c8475407e6cd2b6ad262957a622035f81fb93e532b36b", "pin": null } - } + ], + "hostArch": "arm32v7", + "crossHostArches": null }, "arm64v8": { "tags": [ @@ -308,22 +350,28 @@ "arm64v8/docker:latest", "arm64v8/docker:24.0.7-alpine3.18" ], - "froms": [ - "docker:24-cli" + "dockerfileParents": [ + { + "From": "docker:24-cli", + "Kind": "FROM" + } ], - "lastStageFrom": "docker:24-cli", "platformString": "linux/arm64/v8", "platform": { "architecture": "arm64", "os": "linux", "variant": "v8" }, - "parents": { - "docker:24-cli": { + "parents": [ + { + "From": "docker:24-cli", + "Kind": "FROM", "sourceId": "76d7d7d66aeb62eb797c8475407e6cd2b6ad262957a622035f81fb93e532b36b", "pin": null } - } + ], + "hostArch": "arm64v8", + "crossHostArches": null } } }, @@ -363,21 +411,27 @@ "winamd64/docker:24-windowsservercore", "winamd64/docker:windowsservercore" ], - "froms": [ - "mcr.microsoft.com/windows/servercore:ltsc2022" + "dockerfileParents": [ + { + "From": "mcr.microsoft.com/windows/servercore:ltsc2022", + "Kind": "FROM" + } ], - "lastStageFrom": "mcr.microsoft.com/windows/servercore:ltsc2022", "platformString": "windows/amd64", "platform": { "architecture": "amd64", "os": "windows" }, - "parents": { - "mcr.microsoft.com/windows/servercore:ltsc2022": { + "parents": [ + { + "From": "mcr.microsoft.com/windows/servercore:ltsc2022", + "Kind": "FROM", "sourceId": null, "pin": "sha256:308ef3f8ee3e9c9a1bdec460009c1e6394b329db13eb3149461f8841be5b538a" } - } + ], + "hostArch": "windows-amd64", + "crossHostArches": null } } }, @@ -417,21 +471,27 @@ "winamd64/docker:24-windowsservercore", "winamd64/docker:windowsservercore" ], - "froms": [ - "mcr.microsoft.com/windows/servercore:1809" + "dockerfileParents": [ + { + "From": "mcr.microsoft.com/windows/servercore:1809", + "Kind": "FROM" + } ], - "lastStageFrom": "mcr.microsoft.com/windows/servercore:1809", "platformString": "windows/amd64", "platform": { "architecture": "amd64", "os": "windows" }, - "parents": { - "mcr.microsoft.com/windows/servercore:1809": { + "parents": [ + { + "From": "mcr.microsoft.com/windows/servercore:1809", + "Kind": "FROM", "sourceId": null, "pin": "sha256:4fe58f25a157ea749c7b770acebfdbd70c3cb2088c446943e90fe89ea059558b" } - } + ], + "hostArch": "windows-amd64", + "crossHostArches": null } } }, @@ -459,27 +519,37 @@ "amd64/notary:server-0.7.0", "amd64/notary:server" ], - "froms": [ - "golang:1.19-alpine3.16", - "alpine:3.16", - "golang:1.19-alpine3.16" + "dockerfileParents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM" + }, + { + "From": "alpine:3.16", + "Kind": "FROM" + } ], - "lastStageFrom": "alpine:3.16", "platformString": "linux/amd64", "platform": { "architecture": "amd64", "os": "linux" }, - "parents": { - "golang:1.19-alpine3.16": { + "parents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM", "sourceId": null, "pin": null }, - "alpine:3.16": { + { + "From": "alpine:3.16", + "Kind": "FROM", "sourceId": null, "pin": "sha256:e4cdb7d47b06ba0a062ad2a97a7d154967c8f83934594d9f2bd3efa89292996b" } - } + ], + "hostArch": "amd64", + "crossHostArches": null }, "arm32v6": { "tags": [ @@ -490,28 +560,38 @@ "arm32v6/notary:server-0.7.0", "arm32v6/notary:server" ], - "froms": [ - "golang:1.19-alpine3.16", - "alpine:3.16", - "golang:1.19-alpine3.16" + "dockerfileParents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM" + }, + { + "From": "alpine:3.16", + "Kind": "FROM" + } ], - "lastStageFrom": "alpine:3.16", "platformString": "linux/arm/v6", "platform": { "architecture": "arm", "os": "linux", "variant": "v6" }, - "parents": { - "golang:1.19-alpine3.16": { + "parents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM", "sourceId": null, "pin": null }, - "alpine:3.16": { + { + "From": "alpine:3.16", + "Kind": "FROM", "sourceId": null, "pin": "sha256:e4cdb7d47b06ba0a062ad2a97a7d154967c8f83934594d9f2bd3efa89292996b" } - } + ], + "hostArch": "arm32v6", + "crossHostArches": null }, "arm64v8": { "tags": [ @@ -522,28 +602,38 @@ "arm64v8/notary:server-0.7.0", "arm64v8/notary:server" ], - "froms": [ - "golang:1.19-alpine3.16", - "alpine:3.16", - "golang:1.19-alpine3.16" + "dockerfileParents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM" + }, + { + "From": "alpine:3.16", + "Kind": "FROM" + } ], - "lastStageFrom": "alpine:3.16", "platformString": "linux/arm64/v8", "platform": { "architecture": "arm64", "os": "linux", "variant": "v8" }, - "parents": { - "golang:1.19-alpine3.16": { + "parents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM", "sourceId": null, "pin": null }, - "alpine:3.16": { + { + "From": "alpine:3.16", + "Kind": "FROM", "sourceId": null, "pin": "sha256:e4cdb7d47b06ba0a062ad2a97a7d154967c8f83934594d9f2bd3efa89292996b" } - } + ], + "hostArch": "arm64v8", + "crossHostArches": null }, "i386": { "tags": [ @@ -554,27 +644,37 @@ "i386/notary:server-0.7.0", "i386/notary:server" ], - "froms": [ - "golang:1.19-alpine3.16", - "alpine:3.16", - "golang:1.19-alpine3.16" + "dockerfileParents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM" + }, + { + "From": "alpine:3.16", + "Kind": "FROM" + } ], - "lastStageFrom": "alpine:3.16", "platformString": "linux/386", "platform": { "architecture": "386", "os": "linux" }, - "parents": { - "golang:1.19-alpine3.16": { + "parents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM", "sourceId": null, "pin": null }, - "alpine:3.16": { + { + "From": "alpine:3.16", + "Kind": "FROM", "sourceId": null, "pin": "sha256:e4cdb7d47b06ba0a062ad2a97a7d154967c8f83934594d9f2bd3efa89292996b" } - } + ], + "hostArch": "i386", + "crossHostArches": null }, "ppc64le": { "tags": [ @@ -585,27 +685,37 @@ "ppc64le/notary:server-0.7.0", "ppc64le/notary:server" ], - "froms": [ - "golang:1.19-alpine3.16", - "alpine:3.16", - "golang:1.19-alpine3.16" + "dockerfileParents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM" + }, + { + "From": "alpine:3.16", + "Kind": "FROM" + } ], - "lastStageFrom": "alpine:3.16", "platformString": "linux/ppc64le", "platform": { "architecture": "ppc64le", "os": "linux" }, - "parents": { - "golang:1.19-alpine3.16": { + "parents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM", "sourceId": null, "pin": null }, - "alpine:3.16": { + { + "From": "alpine:3.16", + "Kind": "FROM", "sourceId": null, "pin": "sha256:e4cdb7d47b06ba0a062ad2a97a7d154967c8f83934594d9f2bd3efa89292996b" } - } + ], + "hostArch": "ppc64le", + "crossHostArches": null }, "s390x": { "tags": [ @@ -616,27 +726,37 @@ "s390x/notary:server-0.7.0", "s390x/notary:server" ], - "froms": [ - "golang:1.19-alpine3.16", - "alpine:3.16", - "golang:1.19-alpine3.16" + "dockerfileParents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM" + }, + { + "From": "alpine:3.16", + "Kind": "FROM" + } ], - "lastStageFrom": "alpine:3.16", "platformString": "linux/s390x", "platform": { "architecture": "s390x", "os": "linux" }, - "parents": { - "golang:1.19-alpine3.16": { + "parents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM", "sourceId": null, "pin": null }, - "alpine:3.16": { + { + "From": "alpine:3.16", + "Kind": "FROM", "sourceId": null, "pin": "sha256:e4cdb7d47b06ba0a062ad2a97a7d154967c8f83934594d9f2bd3efa89292996b" } - } + ], + "hostArch": "s390x", + "crossHostArches": null } } }, @@ -664,27 +784,37 @@ "amd64/notary:signer-0.7.0", "amd64/notary:signer" ], - "froms": [ - "golang:1.19-alpine3.16", - "alpine:3.16", - "golang:1.19-alpine3.16" + "dockerfileParents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM" + }, + { + "From": "alpine:3.16", + "Kind": "FROM" + } ], - "lastStageFrom": "alpine:3.16", "platformString": "linux/amd64", "platform": { "architecture": "amd64", "os": "linux" }, - "parents": { - "golang:1.19-alpine3.16": { + "parents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM", "sourceId": null, "pin": null }, - "alpine:3.16": { + { + "From": "alpine:3.16", + "Kind": "FROM", "sourceId": null, "pin": "sha256:e4cdb7d47b06ba0a062ad2a97a7d154967c8f83934594d9f2bd3efa89292996b" } - } + ], + "hostArch": "amd64", + "crossHostArches": null }, "arm32v6": { "tags": [ @@ -695,28 +825,38 @@ "arm32v6/notary:signer-0.7.0", "arm32v6/notary:signer" ], - "froms": [ - "golang:1.19-alpine3.16", - "alpine:3.16", - "golang:1.19-alpine3.16" + "dockerfileParents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM" + }, + { + "From": "alpine:3.16", + "Kind": "FROM" + } ], - "lastStageFrom": "alpine:3.16", "platformString": "linux/arm/v6", "platform": { "architecture": "arm", "os": "linux", "variant": "v6" }, - "parents": { - "golang:1.19-alpine3.16": { + "parents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM", "sourceId": null, "pin": null }, - "alpine:3.16": { + { + "From": "alpine:3.16", + "Kind": "FROM", "sourceId": null, "pin": "sha256:e4cdb7d47b06ba0a062ad2a97a7d154967c8f83934594d9f2bd3efa89292996b" } - } + ], + "hostArch": "arm32v6", + "crossHostArches": null }, "arm64v8": { "tags": [ @@ -727,28 +867,38 @@ "arm64v8/notary:signer-0.7.0", "arm64v8/notary:signer" ], - "froms": [ - "golang:1.19-alpine3.16", - "alpine:3.16", - "golang:1.19-alpine3.16" + "dockerfileParents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM" + }, + { + "From": "alpine:3.16", + "Kind": "FROM" + } ], - "lastStageFrom": "alpine:3.16", "platformString": "linux/arm64/v8", "platform": { "architecture": "arm64", "os": "linux", "variant": "v8" }, - "parents": { - "golang:1.19-alpine3.16": { + "parents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM", "sourceId": null, "pin": null }, - "alpine:3.16": { + { + "From": "alpine:3.16", + "Kind": "FROM", "sourceId": null, "pin": "sha256:e4cdb7d47b06ba0a062ad2a97a7d154967c8f83934594d9f2bd3efa89292996b" } - } + ], + "hostArch": "arm64v8", + "crossHostArches": null }, "i386": { "tags": [ @@ -759,27 +909,37 @@ "i386/notary:signer-0.7.0", "i386/notary:signer" ], - "froms": [ - "golang:1.19-alpine3.16", - "alpine:3.16", - "golang:1.19-alpine3.16" + "dockerfileParents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM" + }, + { + "From": "alpine:3.16", + "Kind": "FROM" + } ], - "lastStageFrom": "alpine:3.16", "platformString": "linux/386", "platform": { "architecture": "386", "os": "linux" }, - "parents": { - "golang:1.19-alpine3.16": { + "parents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM", "sourceId": null, "pin": null }, - "alpine:3.16": { + { + "From": "alpine:3.16", + "Kind": "FROM", "sourceId": null, "pin": "sha256:e4cdb7d47b06ba0a062ad2a97a7d154967c8f83934594d9f2bd3efa89292996b" } - } + ], + "hostArch": "i386", + "crossHostArches": null }, "ppc64le": { "tags": [ @@ -790,27 +950,37 @@ "ppc64le/notary:signer-0.7.0", "ppc64le/notary:signer" ], - "froms": [ - "golang:1.19-alpine3.16", - "alpine:3.16", - "golang:1.19-alpine3.16" + "dockerfileParents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM" + }, + { + "From": "alpine:3.16", + "Kind": "FROM" + } ], - "lastStageFrom": "alpine:3.16", "platformString": "linux/ppc64le", "platform": { "architecture": "ppc64le", "os": "linux" }, - "parents": { - "golang:1.19-alpine3.16": { + "parents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM", "sourceId": null, "pin": null }, - "alpine:3.16": { + { + "From": "alpine:3.16", + "Kind": "FROM", "sourceId": null, "pin": "sha256:e4cdb7d47b06ba0a062ad2a97a7d154967c8f83934594d9f2bd3efa89292996b" } - } + ], + "hostArch": "ppc64le", + "crossHostArches": null }, "s390x": { "tags": [ @@ -821,27 +991,37 @@ "s390x/notary:signer-0.7.0", "s390x/notary:signer" ], - "froms": [ - "golang:1.19-alpine3.16", - "alpine:3.16", - "golang:1.19-alpine3.16" + "dockerfileParents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM" + }, + { + "From": "alpine:3.16", + "Kind": "FROM" + } ], - "lastStageFrom": "alpine:3.16", "platformString": "linux/s390x", "platform": { "architecture": "s390x", "os": "linux" }, - "parents": { - "golang:1.19-alpine3.16": { + "parents": [ + { + "From": "golang:1.19-alpine3.16", + "Kind": "FROM", "sourceId": null, "pin": null }, - "alpine:3.16": { + { + "From": "alpine:3.16", + "Kind": "FROM", "sourceId": null, "pin": "sha256:e4cdb7d47b06ba0a062ad2a97a7d154967c8f83934594d9f2bd3efa89292996b" } - } + ], + "hostArch": "s390x", + "crossHostArches": null } } }, @@ -885,21 +1065,27 @@ "amd64/busybox:stable-glibc", "amd64/busybox:glibc" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/amd64", "platform": { "architecture": "amd64", "os": "linux" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "amd64", + "crossHostArches": null } } }, @@ -943,22 +1129,28 @@ "arm32v5/busybox:stable-glibc", "arm32v5/busybox:glibc" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/arm/v5", "platform": { "architecture": "arm", "os": "linux", "variant": "v5" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "arm32v5", + "crossHostArches": null } } }, @@ -1002,22 +1194,28 @@ "arm32v6/busybox:stable-musl", "arm32v6/busybox:musl" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/arm/v6", "platform": { "architecture": "arm", "os": "linux", "variant": "v6" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "arm32v6", + "crossHostArches": null } } }, @@ -1061,22 +1259,28 @@ "arm32v7/busybox:stable-glibc", "arm32v7/busybox:glibc" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/arm/v7", "platform": { "architecture": "arm", "os": "linux", "variant": "v7" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "arm32v7", + "crossHostArches": null } } }, @@ -1120,22 +1324,28 @@ "arm64v8/busybox:stable-glibc", "arm64v8/busybox:glibc" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/arm64/v8", "platform": { "architecture": "arm64", "os": "linux", "variant": "v8" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "arm64v8", + "crossHostArches": null } } }, @@ -1179,21 +1389,27 @@ "i386/busybox:stable-glibc", "i386/busybox:glibc" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/386", "platform": { "architecture": "386", "os": "linux" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "i386", + "crossHostArches": null } } }, @@ -1237,21 +1453,27 @@ "mips64le/busybox:stable-glibc", "mips64le/busybox:glibc" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/mips64le", "platform": { "architecture": "mips64le", "os": "linux" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "mips64le", + "crossHostArches": null } } }, @@ -1295,21 +1517,27 @@ "ppc64le/busybox:stable-glibc", "ppc64le/busybox:glibc" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/ppc64le", "platform": { "architecture": "ppc64le", "os": "linux" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "ppc64le", + "crossHostArches": null } } }, @@ -1353,21 +1581,27 @@ "riscv64/busybox:stable-uclibc", "riscv64/busybox:uclibc" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/riscv64", "platform": { "architecture": "riscv64", "os": "linux" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "riscv64", + "crossHostArches": null } } }, @@ -1411,21 +1645,27 @@ "s390x/busybox:stable-glibc", "s390x/busybox:glibc" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/s390x", "platform": { "architecture": "s390x", "os": "linux" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "s390x", + "crossHostArches": null } } }, @@ -1459,21 +1699,27 @@ "riscv64/busybox:stable-glibc", "riscv64/busybox:glibc" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/riscv64", "platform": { "architecture": "riscv64", "os": "linux" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "riscv64", + "crossHostArches": null } } }, @@ -1507,21 +1753,27 @@ "amd64/busybox:stable-musl", "amd64/busybox:musl" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/amd64", "platform": { "architecture": "amd64", "os": "linux" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "amd64", + "crossHostArches": null } } }, @@ -1555,22 +1807,28 @@ "arm32v7/busybox:stable-musl", "arm32v7/busybox:musl" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/arm/v7", "platform": { "architecture": "arm", "os": "linux", "variant": "v7" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "arm32v7", + "crossHostArches": null } } }, @@ -1604,22 +1862,28 @@ "arm64v8/busybox:stable-musl", "arm64v8/busybox:musl" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/arm64/v8", "platform": { "architecture": "arm64", "os": "linux", "variant": "v8" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "arm64v8", + "crossHostArches": null } } }, @@ -1653,21 +1917,27 @@ "i386/busybox:stable-musl", "i386/busybox:musl" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/386", "platform": { "architecture": "386", "os": "linux" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "i386", + "crossHostArches": null } } }, @@ -1701,21 +1971,27 @@ "ppc64le/busybox:stable-musl", "ppc64le/busybox:musl" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/ppc64le", "platform": { "architecture": "ppc64le", "os": "linux" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "ppc64le", + "crossHostArches": null } } }, @@ -1749,21 +2025,27 @@ "riscv64/busybox:stable-musl", "riscv64/busybox:musl" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/riscv64", "platform": { "architecture": "riscv64", "os": "linux" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "riscv64", + "crossHostArches": null } } }, @@ -1797,21 +2079,27 @@ "s390x/busybox:stable-musl", "s390x/busybox:musl" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/s390x", "platform": { "architecture": "s390x", "os": "linux" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "s390x", + "crossHostArches": null } } }, @@ -1845,21 +2133,27 @@ "amd64/busybox:stable-uclibc", "amd64/busybox:uclibc" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/amd64", "platform": { "architecture": "amd64", "os": "linux" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "amd64", + "crossHostArches": null } } }, @@ -1893,22 +2187,28 @@ "arm32v5/busybox:stable-uclibc", "arm32v5/busybox:uclibc" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/arm/v5", "platform": { "architecture": "arm", "os": "linux", "variant": "v5" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "arm32v5", + "crossHostArches": null } } }, @@ -1942,22 +2242,28 @@ "arm32v7/busybox:stable-uclibc", "arm32v7/busybox:uclibc" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/arm/v7", "platform": { "architecture": "arm", "os": "linux", "variant": "v7" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "arm32v7", + "crossHostArches": null } } }, @@ -1991,22 +2297,28 @@ "arm64v8/busybox:stable-uclibc", "arm64v8/busybox:uclibc" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/arm64/v8", "platform": { "architecture": "arm64", "os": "linux", "variant": "v8" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "arm64v8", + "crossHostArches": null } } }, @@ -2040,21 +2352,27 @@ "i386/busybox:stable-uclibc", "i386/busybox:uclibc" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/386", "platform": { "architecture": "386", "os": "linux" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "scratch", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": "i386", + "crossHostArches": null } } }, @@ -2088,21 +2406,470 @@ "mips64le/busybox:stable-uclibc", "mips64le/busybox:uclibc" ], - "froms": [ - "scratch" + "dockerfileParents": [ + { + "From": "scratch", + "Kind": "FROM" + } + ], + "platformString": "linux/mips64le", + "platform": { + "architecture": "mips64le", + "os": "linux" + }, + "parents": [ + { + "From": "scratch", + "Kind": "FROM", + "sourceId": null, + "pin": null + } + ], + "hostArch": "mips64le", + "crossHostArches": null + } + } + }, + "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e": { + "sourceId": "e4195af35f0c1caf290d54717e92c8c67cf69723d561aae0c007db2152a7db8e", + "reproducibleGitChecksum": "f32e9b7ab78fecd14f065cecec4ea538bafa31f1d46d91ded8b56231c8abc4f8", + "entries": [ + { + "GitRepo": "https://github.com/tianon/dockerfiles.git", + "GitFetch": "refs/heads/master", + "GitCommit": "386636e197ba347441c97db8edcfad9113e41365", + "Directory": "buildkit", + "File": "Dockerfile", + "Builder": "buildkit", + "SOURCE_DATE_EPOCH": 1716334145 + } + ], + "arches": { + "amd64": { + "tags": [ + "buildkit:0.13.2", + "buildkit:0.13", + "buildkit:0", + "buildkit:latest" + ], + "archTags": [ + "amd64/buildkit:0.13.2", + "amd64/buildkit:0.13", + "amd64/buildkit:0", + "amd64/buildkit:latest" + ], + "dockerfileParents": [ + { + "From": "golang:1.21", + "Platform": "$BUILDPLATFORM", + "Kind": "FROM" + }, + { + "From": "infosiftr/moby:latest", + "Kind": "FROM" + } + ], + "platformString": "linux/amd64", + "platform": { + "architecture": "amd64", + "os": "linux" + }, + "parents": [ + { + "From": "golang:1.21", + "Platform": "$BUILDPLATFORM", + "Kind": "FROM", + "sourceId": null, + "pin": null + }, + { + "From": "infosiftr/moby:latest", + "Kind": "FROM", + "sourceId": null, + "pin": null + } + ], + "hostArch": null, + "crossHostArches": null + }, + "arm32v5": { + "tags": [ + "buildkit:0.13.2", + "buildkit:0.13", + "buildkit:0", + "buildkit:latest" + ], + "archTags": [ + "arm32v5/buildkit:0.13.2", + "arm32v5/buildkit:0.13", + "arm32v5/buildkit:0", + "arm32v5/buildkit:latest" + ], + "dockerfileParents": [ + { + "From": "golang:1.21", + "Platform": "$BUILDPLATFORM", + "Kind": "FROM" + }, + { + "From": "infosiftr/moby:latest", + "Kind": "FROM" + } + ], + "platformString": "linux/arm/v5", + "platform": { + "architecture": "arm", + "os": "linux", + "variant": "v5" + }, + "parents": [ + { + "From": "golang:1.21", + "Platform": "$BUILDPLATFORM", + "Kind": "FROM", + "sourceId": null, + "pin": null + }, + { + "From": "infosiftr/moby:latest", + "Kind": "FROM", + "sourceId": null, + "pin": null + } + ], + "hostArch": null, + "crossHostArches": null + }, + "arm32v7": { + "tags": [ + "buildkit:0.13.2", + "buildkit:0.13", + "buildkit:0", + "buildkit:latest" + ], + "archTags": [ + "arm32v7/buildkit:0.13.2", + "arm32v7/buildkit:0.13", + "arm32v7/buildkit:0", + "arm32v7/buildkit:latest" + ], + "dockerfileParents": [ + { + "From": "golang:1.21", + "Platform": "$BUILDPLATFORM", + "Kind": "FROM" + }, + { + "From": "infosiftr/moby:latest", + "Kind": "FROM" + } + ], + "platformString": "linux/arm/v7", + "platform": { + "architecture": "arm", + "os": "linux", + "variant": "v7" + }, + "parents": [ + { + "From": "golang:1.21", + "Platform": "$BUILDPLATFORM", + "Kind": "FROM", + "sourceId": null, + "pin": null + }, + { + "From": "infosiftr/moby:latest", + "Kind": "FROM", + "sourceId": null, + "pin": null + } + ], + "hostArch": null, + "crossHostArches": null + }, + "arm64v8": { + "tags": [ + "buildkit:0.13.2", + "buildkit:0.13", + "buildkit:0", + "buildkit:latest" + ], + "archTags": [ + "arm64v8/buildkit:0.13.2", + "arm64v8/buildkit:0.13", + "arm64v8/buildkit:0", + "arm64v8/buildkit:latest" + ], + "dockerfileParents": [ + { + "From": "golang:1.21", + "Platform": "$BUILDPLATFORM", + "Kind": "FROM" + }, + { + "From": "infosiftr/moby:latest", + "Kind": "FROM" + } + ], + "platformString": "linux/arm64/v8", + "platform": { + "architecture": "arm64", + "os": "linux", + "variant": "v8" + }, + "parents": [ + { + "From": "golang:1.21", + "Platform": "$BUILDPLATFORM", + "Kind": "FROM", + "sourceId": null, + "pin": null + }, + { + "From": "infosiftr/moby:latest", + "Kind": "FROM", + "sourceId": null, + "pin": null + } + ], + "hostArch": null, + "crossHostArches": null + }, + "i386": { + "tags": [ + "buildkit:0.13.2", + "buildkit:0.13", + "buildkit:0", + "buildkit:latest" + ], + "archTags": [ + "i386/buildkit:0.13.2", + "i386/buildkit:0.13", + "i386/buildkit:0", + "i386/buildkit:latest" + ], + "dockerfileParents": [ + { + "From": "golang:1.21", + "Platform": "$BUILDPLATFORM", + "Kind": "FROM" + }, + { + "From": "infosiftr/moby:latest", + "Kind": "FROM" + } + ], + "platformString": "linux/386", + "platform": { + "architecture": "386", + "os": "linux" + }, + "parents": [ + { + "From": "golang:1.21", + "Platform": "$BUILDPLATFORM", + "Kind": "FROM", + "sourceId": null, + "pin": null + }, + { + "From": "infosiftr/moby:latest", + "Kind": "FROM", + "sourceId": null, + "pin": null + } + ], + "hostArch": null, + "crossHostArches": null + }, + "mips64le": { + "tags": [ + "buildkit:0.13.2", + "buildkit:0.13", + "buildkit:0", + "buildkit:latest" + ], + "archTags": [ + "mips64le/buildkit:0.13.2", + "mips64le/buildkit:0.13", + "mips64le/buildkit:0", + "mips64le/buildkit:latest" + ], + "dockerfileParents": [ + { + "From": "golang:1.21", + "Platform": "$BUILDPLATFORM", + "Kind": "FROM" + }, + { + "From": "infosiftr/moby:latest", + "Kind": "FROM" + } ], - "lastStageFrom": "scratch", "platformString": "linux/mips64le", "platform": { "architecture": "mips64le", "os": "linux" }, - "parents": { - "scratch": { + "parents": [ + { + "From": "golang:1.21", + "Platform": "$BUILDPLATFORM", + "Kind": "FROM", + "sourceId": null, + "pin": null + }, + { + "From": "infosiftr/moby:latest", + "Kind": "FROM", + "sourceId": null, + "pin": null + } + ], + "hostArch": null, + "crossHostArches": null + }, + "ppc64le": { + "tags": [ + "buildkit:0.13.2", + "buildkit:0.13", + "buildkit:0", + "buildkit:latest" + ], + "archTags": [ + "ppc64le/buildkit:0.13.2", + "ppc64le/buildkit:0.13", + "ppc64le/buildkit:0", + "ppc64le/buildkit:latest" + ], + "dockerfileParents": [ + { + "From": "golang:1.21", + "Platform": "$BUILDPLATFORM", + "Kind": "FROM" + }, + { + "From": "infosiftr/moby:latest", + "Kind": "FROM" + } + ], + "platformString": "linux/ppc64le", + "platform": { + "architecture": "ppc64le", + "os": "linux" + }, + "parents": [ + { + "From": "golang:1.21", + "Platform": "$BUILDPLATFORM", + "Kind": "FROM", + "sourceId": null, + "pin": null + }, + { + "From": "infosiftr/moby:latest", + "Kind": "FROM", + "sourceId": null, + "pin": null + } + ], + "hostArch": null, + "crossHostArches": null + }, + "riscv64": { + "tags": [ + "buildkit:0.13.2", + "buildkit:0.13", + "buildkit:0", + "buildkit:latest" + ], + "archTags": [ + "riscv64/buildkit:0.13.2", + "riscv64/buildkit:0.13", + "riscv64/buildkit:0", + "riscv64/buildkit:latest" + ], + "dockerfileParents": [ + { + "From": "golang:1.21", + "Platform": "$BUILDPLATFORM", + "Kind": "FROM" + }, + { + "From": "infosiftr/moby:latest", + "Kind": "FROM" + } + ], + "platformString": "linux/riscv64", + "platform": { + "architecture": "riscv64", + "os": "linux" + }, + "parents": [ + { + "From": "golang:1.21", + "Platform": "$BUILDPLATFORM", + "Kind": "FROM", + "sourceId": null, + "pin": null + }, + { + "From": "infosiftr/moby:latest", + "Kind": "FROM", "sourceId": null, "pin": null } - } + ], + "hostArch": null, + "crossHostArches": null + }, + "s390x": { + "tags": [ + "buildkit:0.13.2", + "buildkit:0.13", + "buildkit:0", + "buildkit:latest" + ], + "archTags": [ + "s390x/buildkit:0.13.2", + "s390x/buildkit:0.13", + "s390x/buildkit:0", + "s390x/buildkit:latest" + ], + "dockerfileParents": [ + { + "From": "golang:1.21", + "Platform": "$BUILDPLATFORM", + "Kind": "FROM" + }, + { + "From": "infosiftr/moby:latest", + "Kind": "FROM" + } + ], + "platformString": "linux/s390x", + "platform": { + "architecture": "s390x", + "os": "linux" + }, + "parents": [ + { + "From": "golang:1.21", + "Platform": "$BUILDPLATFORM", + "Kind": "FROM", + "sourceId": null, + "pin": null + }, + { + "From": "infosiftr/moby:latest", + "Kind": "FROM", + "sourceId": null, + "pin": null + } + ], + "hostArch": null, + "crossHostArches": null } } }, @@ -2130,21 +2897,27 @@ "infosiftr-moby:amd64" ], "archTags": [], - "froms": [ - "debian:bookworm-slim" + "dockerfileParents": [ + { + "From": "debian:bookworm-slim", + "Kind": "FROM" + } ], - "lastStageFrom": "debian:bookworm-slim", "platformString": "linux/amd64", "platform": { "architecture": "amd64", "os": "linux" }, - "parents": { - "debian:bookworm-slim": { + "parents": [ + { + "From": "debian:bookworm-slim", + "Kind": "FROM", "sourceId": null, "pin": "sha256:155280b00ee0133250f7159b567a07d7cd03b1645714c3a7458b2287b0ca83cb" } - } + ], + "hostArch": "amd64", + "crossHostArches": null }, "arm32v5": { "tags": [ @@ -2155,22 +2928,28 @@ "infosiftr-moby:arm32v5" ], "archTags": [], - "froms": [ - "debian:bookworm-slim" + "dockerfileParents": [ + { + "From": "debian:bookworm-slim", + "Kind": "FROM" + } ], - "lastStageFrom": "debian:bookworm-slim", "platformString": "linux/arm/v5", "platform": { "architecture": "arm", "os": "linux", "variant": "v5" }, - "parents": { - "debian:bookworm-slim": { + "parents": [ + { + "From": "debian:bookworm-slim", + "Kind": "FROM", "sourceId": null, "pin": "sha256:155280b00ee0133250f7159b567a07d7cd03b1645714c3a7458b2287b0ca83cb" } - } + ], + "hostArch": "arm32v5", + "crossHostArches": null }, "arm32v7": { "tags": [ @@ -2181,22 +2960,28 @@ "infosiftr-moby:arm32v7" ], "archTags": [], - "froms": [ - "debian:bookworm-slim" + "dockerfileParents": [ + { + "From": "debian:bookworm-slim", + "Kind": "FROM" + } ], - "lastStageFrom": "debian:bookworm-slim", "platformString": "linux/arm/v7", "platform": { "architecture": "arm", "os": "linux", "variant": "v7" }, - "parents": { - "debian:bookworm-slim": { + "parents": [ + { + "From": "debian:bookworm-slim", + "Kind": "FROM", "sourceId": null, "pin": "sha256:155280b00ee0133250f7159b567a07d7cd03b1645714c3a7458b2287b0ca83cb" } - } + ], + "hostArch": "arm32v7", + "crossHostArches": null }, "arm64v8": { "tags": [ @@ -2207,22 +2992,28 @@ "infosiftr-moby:arm64v8" ], "archTags": [], - "froms": [ - "debian:bookworm-slim" + "dockerfileParents": [ + { + "From": "debian:bookworm-slim", + "Kind": "FROM" + } ], - "lastStageFrom": "debian:bookworm-slim", "platformString": "linux/arm64/v8", "platform": { "architecture": "arm64", "os": "linux", "variant": "v8" }, - "parents": { - "debian:bookworm-slim": { + "parents": [ + { + "From": "debian:bookworm-slim", + "Kind": "FROM", "sourceId": null, "pin": "sha256:155280b00ee0133250f7159b567a07d7cd03b1645714c3a7458b2287b0ca83cb" } - } + ], + "hostArch": "arm64v8", + "crossHostArches": null }, "i386": { "tags": [ @@ -2233,21 +3024,27 @@ "infosiftr-moby:i386" ], "archTags": [], - "froms": [ - "debian:bookworm-slim" + "dockerfileParents": [ + { + "From": "debian:bookworm-slim", + "Kind": "FROM" + } ], - "lastStageFrom": "debian:bookworm-slim", "platformString": "linux/386", "platform": { "architecture": "386", "os": "linux" }, - "parents": { - "debian:bookworm-slim": { + "parents": [ + { + "From": "debian:bookworm-slim", + "Kind": "FROM", "sourceId": null, "pin": "sha256:155280b00ee0133250f7159b567a07d7cd03b1645714c3a7458b2287b0ca83cb" } - } + ], + "hostArch": "i386", + "crossHostArches": null }, "mips64le": { "tags": [ @@ -2258,21 +3055,27 @@ "infosiftr-moby:mips64le" ], "archTags": [], - "froms": [ - "debian:bookworm-slim" + "dockerfileParents": [ + { + "From": "debian:bookworm-slim", + "Kind": "FROM" + } ], - "lastStageFrom": "debian:bookworm-slim", "platformString": "linux/mips64le", "platform": { "architecture": "mips64le", "os": "linux" }, - "parents": { - "debian:bookworm-slim": { + "parents": [ + { + "From": "debian:bookworm-slim", + "Kind": "FROM", "sourceId": null, "pin": "sha256:155280b00ee0133250f7159b567a07d7cd03b1645714c3a7458b2287b0ca83cb" } - } + ], + "hostArch": "mips64le", + "crossHostArches": null }, "ppc64le": { "tags": [ @@ -2283,21 +3086,27 @@ "infosiftr-moby:ppc64le" ], "archTags": [], - "froms": [ - "debian:bookworm-slim" + "dockerfileParents": [ + { + "From": "debian:bookworm-slim", + "Kind": "FROM" + } ], - "lastStageFrom": "debian:bookworm-slim", "platformString": "linux/ppc64le", "platform": { "architecture": "ppc64le", "os": "linux" }, - "parents": { - "debian:bookworm-slim": { + "parents": [ + { + "From": "debian:bookworm-slim", + "Kind": "FROM", "sourceId": null, "pin": "sha256:155280b00ee0133250f7159b567a07d7cd03b1645714c3a7458b2287b0ca83cb" } - } + ], + "hostArch": "ppc64le", + "crossHostArches": null }, "s390x": { "tags": [ @@ -2308,21 +3117,27 @@ "infosiftr-moby:s390x" ], "archTags": [], - "froms": [ - "debian:bookworm-slim" + "dockerfileParents": [ + { + "From": "debian:bookworm-slim", + "Kind": "FROM" + } ], - "lastStageFrom": "debian:bookworm-slim", "platformString": "linux/s390x", "platform": { "architecture": "s390x", "os": "linux" }, - "parents": { - "debian:bookworm-slim": { + "parents": [ + { + "From": "debian:bookworm-slim", + "Kind": "FROM", "sourceId": null, "pin": "sha256:155280b00ee0133250f7159b567a07d7cd03b1645714c3a7458b2287b0ca83cb" } - } + ], + "hostArch": "s390x", + "crossHostArches": null } } }, @@ -2350,21 +3165,27 @@ "infosiftr-moby:riscv64" ], "archTags": [], - "froms": [ - "debian:unstable-slim" + "dockerfileParents": [ + { + "From": "debian:unstable-slim", + "Kind": "FROM" + } ], - "lastStageFrom": "debian:unstable-slim", "platformString": "linux/riscv64", "platform": { "architecture": "riscv64", "os": "linux" }, - "parents": { - "debian:unstable-slim": { + "parents": [ + { + "From": "debian:unstable-slim", + "Kind": "FROM", "sourceId": null, "pin": "sha256:8ab93b5dec6c19b4a45fbfdebc55c5d08ce7d39a90dc66cc273440ba3a1a5af0" } - } + ], + "hostArch": "riscv64", + "crossHostArches": null } } } diff --git a/.test/test.sh b/.test/test.sh index 16f1e8f..43dc103 100755 --- a/.test/test.sh +++ b/.test/test.sh @@ -25,7 +25,7 @@ if [ "${1:-}" = '--deploy' ]; then doDeploy=1 fi -set -- docker:cli docker:dind docker:windowsservercore notary busybox:{latest,glibc,musl,uclibc} # a little bit of Windows, a little bit of Linux, a little bit of multi-stage, a little bit of oci-import (and a little bit of cursed busybox) +set -- docker:cli docker:dind docker:windowsservercore notary busybox:{latest,glibc,musl,uclibc} buildkit # a little bit of Windows, a little bit of Linux, a little bit of multi-stage, a little bit of oci-import (and a little bit of cursed busybox), a little bit of cross-building # (see "library/" and ".external-pins/" for where these come from / are hard-coded for consistent testing purposes) # NOTE: we are explicitly *not* pinning "golang:1.19-alpine3.16" so that this also tests unpinned parent behavior (that image is deprecated so should stay unchanging) diff --git a/Jenkinsfile.build b/Jenkinsfile.build index 28038ee..8d32506 100644 --- a/Jenkinsfile.build +++ b/Jenkinsfile.build @@ -13,6 +13,7 @@ properties([ string(name: 'buildId', trim: true), string(name: 'identifier', trim: true, description: '(optional) used to set currentBuild.displayName to a meaningful value earlier'), string(name: 'windowsVersion', trim: true, description: '(optional) used to select the Windows node (2025, 2022, etc)'), + string(name: 'crossHostArches', trim: true, description: '(optional) space-separated host architectures that can cross-build this image; empty means no cross build allowed'), ]), ]) @@ -30,6 +31,13 @@ def nodeExpression = 'multiarch-' + env.BASHBREW_ARCH if (params.windowsVersion) { nodeExpression += ' && windows-' + params.windowsVersion } +def crossHostArches = params.crossHostArches ? params.crossHostArches.tokenize() : [] +if (crossHostArches) { + // widen eligibility instead of narrowing it -- a native node is still just as eligible as before + // "cross-ARCH": this node is QEMU-enabled and can accept builds targeting ARCH; "cross-host-H": this node's own real native arch is H + // (the full, unfiltered list is safe to OR in even if some cross-host-* labels don't exist on any real node yet -- an unsatisfiable clause just never matches, falling through to native) + nodeExpression = '(' + nodeExpression + ') || (cross-' + env.BASHBREW_ARCH + ' && (' + crossHostArches.collect { 'cross-host-' + it }.join(' || ') + '))' +} if (env.BASHBREW_ARCH.startsWith('windows-') && ! params.windowsVersion) { error(env.BASHBREW_ARCH + ' specified, but no Windows OS version (like 2025)') } @@ -158,8 +166,12 @@ node(nodeExpression) { ansiColor('xterm') { withEnv(['DOCKER_CONFIG=' + workspace + '/.docker']) { dir(env.DOCKER_CONFIG) { deleteDir() } + // this node might have matched "nodeExpression" via the native "multiarch-ARCH" label or (if "crossHostArches" was non-empty) the "cross-ARCH"/"cross-host-H" labels -- only trust the native credential if this node actually carries the native label itself (regardless of why the scheduler picked it) + def onNativeNode = env.NODE_LABELS?.tokenize(' ')?.contains('multiarch-' + env.BASHBREW_ARCH) + def credArch = env.BASHBREW_ARCH + (onNativeNode ? '' : '-cross') + withCredentials([usernamePassword( - credentialsId: 'docker-hub-' + env.BASHBREW_ARCH, + credentialsId: 'docker-hub-' + credArch, usernameVariable: 'DOCKER_USERNAME', passwordVariable: 'DOCKER_PASSWORD', )]) { diff --git a/Jenkinsfile.trigger b/Jenkinsfile.trigger index 8299d65..808d608 100644 --- a/Jenkinsfile.trigger +++ b/Jenkinsfile.trigger @@ -182,6 +182,7 @@ stage('trigger') { string(name: 'buildId', value: buildObj.buildId), string(name: 'identifier', value: buildObj.identifier), string(name: 'windowsVersion', value: buildObj.windowsVersion), + string(name: 'crossHostArches', value: (buildObj.crossHostArches ?: []).join(' ')), ], propagate: false, // trigger these quickly so they all get added to Jenkins queue in "queue" order (also using "waitForStart" means we have to wait for the entire "quietPeriod" before we get to move on and schedule more) diff --git a/cmd/builds/main.go b/cmd/builds/main.go index 5fc24a6..927b3d7 100644 --- a/cmd/builds/main.go +++ b/cmd/builds/main.go @@ -9,6 +9,8 @@ import ( "os" "os/exec" "os/signal" + "slices" + "sort" "strings" "sync" @@ -20,14 +22,23 @@ import ( var concurrency = 1000 +// a single parent reference for a build, as produced by "sources.sh" -- From/Platform/Kind come straight from bashbrew's ArchDockerfileParents, sourceId/pin are layered on afterwards (see cross.md) +type MetaSourceParent struct { + From string `json:"From"` + Platform string `json:"Platform"` + Kind string `json:"Kind"` + SourceID *string `json:"sourceId"` + Pin *string `json:"pin"` +} + type MetaSource struct { SourceID string `json:"sourceId"` Arches map[string]struct { - Tags []string `json:"tags"` - Parents om.OrderedMap[struct { - SourceID *string `json:"sourceId"` - Pin *string `json:"pin"` - }] + Tags []string `json:"tags"` + Parents []MetaSourceParent `json:"parents"` + HostArch *string `json:"hostArch"` // nil means "genuinely needs a live check" (see cross.md) -- never "not applicable", "sources.sh" already resolves that case to the build's own target arch + // crossHostArches: same value as HostArch's companion in "sources.sh" -- declared (static) fidelity when non-nil, requiring a live check (below) only when nil. nil is *not* the same as an empty (but non-nil) list: empty means "checked, no common arch -- a live check will not fix this" (see cross.md) + CrossHostArches *[]string `json:"crossHostArches"` } } @@ -44,6 +55,9 @@ type MetaBuild struct { Resolved *ocispec.Index `json:"resolved"` BuildIDParts ResolvedParents om.OrderedMap[ocispec.Index] `json:"resolvedParents"` + // both deliberately outside BuildIDParts -- purely informational, must never affect buildId's hash + HostArch string `json:"hostArch,omitempty"` + CrossHostArches []string `json:"crossHostArches,omitempty"` // the fully-resolved value: same meaning as the source-level field, but with any live-check fallback already applied } `json:"build"` Source json.RawMessage `json:"source"` } @@ -136,6 +150,55 @@ func resolveArchIndex(ctx context.Context, img string, arch string, diskCacheFor return index, nil } +// known bashbrew arches, used only as the last-resort fallback tier in liveHostArches (see cross.md) +var knownArches = []string{"amd64", "arm32v5", "arm32v6", "arm32v7", "arm64v8", "i386", "mips64le", "ppc64le", "riscv64", "s390x"} + +// input: every $BUILDPLATFORM parent for one build, and that build's own target arch +// output: every candidate arch (native, amd64, then a fixed order) that *all* of them resolve at live, plus which one of those wins under the same "native, then amd64, then first-sorted" priority "sources.sh" uses declaratively (empty string if none do) +// this is *only* used when "sources.sh" could not determine crossHostArches/hostArch from static source data alone (see cross.md) -- checking every candidate instead of stopping at the first hit costs nothing extra, since resolveIndex already caches by image reference and each candidate arch is just a free local filter of the same cached manifest list +func liveHostArches(ctx context.Context, buildPinned []MetaSourceParent, nativeArch string) ([]string, string, error) { + candidates := append([]string{nativeArch, "amd64"}, knownArches...) + tried := map[string]bool{} + viable := []string{} + for _, candidate := range candidates { + if tried[candidate] { + continue + } + tried[candidate] = true + + allResolve := true + for _, parent := range buildPinned { + lookup := parent.From + if parent.Pin != nil { + lookup += "@" + *parent.Pin + } + resolved, err := resolveArchIndex(ctx, lookup, candidate, false) + if err != nil { + return nil, "", err + } + if resolved == nil { + allResolve = false + break + } + } + if allResolve { + viable = append(viable, candidate) + } + } + sort.Strings(viable) // match the alphabetical order jq's "keys"-based declared computation already produces + + hostArch := "" + switch { + case slices.Contains(viable, nativeArch): + hostArch = nativeArch + case slices.Contains(viable, "amd64"): + hostArch = "amd64" + case len(viable) > 0: + hostArch = viable[0] // already sorted + } + return viable, hostArch, nil +} + type cacheFileContents struct { Indexes map[registry.Reference]*ocispec.Index `json:"indexes"` } @@ -286,39 +349,81 @@ func main() { outs <- outChan sourceArchResolvedFunc := sync.OnceValue(func() *ocispec.Index { - for _, from := range source.Arches[build.Build.Arch].Parents.Keys() { - if from == "scratch" { + arch := build.Build.Arch + parents := source.Arches[arch].Parents + + // figure out, once, the single host arch every $BUILDPLATFORM parent in this build should be resolved at, and the full set behind that choice (see cross.md) -- both stay unset (i.e. irrelevant) if there are none + hostArch := "" + var crossHostArches []string + var buildPinned []MetaSourceParent + for _, parent := range parents { + if parent.Kind == "FROM" && parent.Platform == "$BUILDPLATFORM" { + buildPinned = append(buildPinned, parent) + } + } + if len(buildPinned) > 0 { + if source.Arches[arch].CrossHostArches != nil { + // "sources.sh" already worked this out from static source data alone -- trust it even if it's empty (meaning "checked, no common arch"; a live check would not fix that, so don't attempt one) + crossHostArches = *source.Arches[arch].CrossHostArches + if source.Arches[arch].HostArch != nil { + hostArch = *source.Arches[arch].HostArch + } + } else { + // at least one $BUILDPLATFORM parent is not bashbrew-tracked -- fall back to a live check (narrower, rarer path; see cross.md) + var err error + crossHostArches, hostArch, err = liveHostArches(ctx, buildPinned, arch) + if err != nil { + panic(err) + } + } + if hostArch == "" { + fmt.Fprintf(os.Stderr, "%s (%s) -> no viable host arch [%s]\n", source.SourceID, source.Arches[arch].Tags[0], arch) + close(outChan) + return nil + } + } + + for _, parent := range parents { + if parent.From == "scratch" { continue } + + // target-pinned parents resolve at this build's own arch, unchanged from before; $BUILDPLATFORM parents resolve at the host arch determined above + resolveArch := arch + if parent.Kind == "FROM" && parent.Platform == "$BUILDPLATFORM" { + resolveArch = hostArch + } + var resolved *ocispec.Index - parent := source.Arches[build.Build.Arch].Parents.Get(from) if parent.SourceID != nil { sourceArchResolvedMutex.RLock() - resolvedFunc, ok := sourceArchResolved[*parent.SourceID+"-"+build.Build.Arch] + resolvedFunc, ok := sourceArchResolved[*parent.SourceID+"-"+resolveArch] if !ok { - panic("parent of " + source.SourceID + " on " + build.Build.Arch + " should be " + *parent.SourceID + " but that sourceId is unknown to us!") + panic("parent of " + source.SourceID + " on " + resolveArch + " should be " + *parent.SourceID + " but that sourceId is unknown to us!") } sourceArchResolvedMutex.RUnlock() resolved = resolvedFunc() } else { - lookup := from + lookup := parent.From if parent.Pin != nil { lookup += "@" + *parent.Pin } - resolved, err = resolveArchIndex(ctx, lookup, build.Build.Arch, false) + resolved, err = resolveArchIndex(ctx, lookup, resolveArch, false) if err != nil { panic(err) } } if resolved == nil { - fmt.Fprintf(os.Stderr, "%s (%s) -> not yet! [%s]\n", source.SourceID, source.Arches[build.Build.Arch].Tags[0], build.Build.Arch) + fmt.Fprintf(os.Stderr, "%s (%s) -> not yet! [%s]\n", source.SourceID, source.Arches[arch].Tags[0], arch) close(outChan) return nil } - build.Build.ResolvedParents.Set(from, *resolved) - build.Build.Parents.Set(from, string(resolved.Manifests[0].Digest)) + build.Build.ResolvedParents.Set(parent.From, *resolved) + build.Build.Parents.Set(parent.From, string(resolved.Manifests[0].Digest)) } + build.Build.HostArch = hostArch + build.Build.CrossHostArches = crossHostArches // buildId calculation buildIDJSON, err := json.Marshal(&build.Build.BuildIDParts) diff --git a/doi.jq b/doi.jq index e5cfe4b..9dfaefb 100644 --- a/doi.jq +++ b/doi.jq @@ -178,3 +178,35 @@ def build_should_sign: | index("notary") ) ; + +# input: "build" object (with "buildId" top level key) +# output: string ("Builder", but normalized) +def normalized_builder: + .build.arch as $arch + | .source.entries[0].Builder + | if . == "" then + if $arch | startswith("windows-") then + # https://github.com/microsoft/Windows-Containers/issues/34 + "classic" + else + "buildkit" + end + else . end +; + +# input: "build object (with "buildId" top level key) +# output: boolean +def build_can_cross: + normalized_builder as $builder + | $builder == "oci-import" + or ( + $builder == "buildkit" + and (.build.arch | startswith("windows-") | not) + and IN( + .source.arches[.build.arch].tags[] + | split(":")[0]; + #"golang", + empty + ) + ) +; diff --git a/jenkins.jq b/jenkins.jq index 935621e..d21864f 100644 --- a/jenkins.jq +++ b/jenkins.jq @@ -1,3 +1,4 @@ +include "doi"; include "meta"; # input: list of build objects i.e., builds.json @@ -64,6 +65,8 @@ def get_arch_queue($arch): ) # add friendly windows os version (2022, 2025) | . + windows_version + # crossHostArches: the real (build-side) fully-resolved set, but only surfaced at all if policy (build_can_cross) allows it -- .build.crossHostArches existing is a structural fact about the Dockerfile, independent of whether we're actually willing to schedule this as a cross build + | .crossHostArches = (if build_can_cross then (.build.crossHostArches // []) else [] end) | .identifier = .source.arches[.build.arch].tags[0] ) ; diff --git a/meta.jq b/meta.jq index fb93445..cf8d53f 100644 --- a/meta.jq +++ b/meta.jq @@ -6,20 +6,6 @@ include "doi"; def needs_build: .build.resolved == null ; -# input: "build" object (with "buildId" top level key) -# output: string ("Builder", but normalized) -def normalized_builder: - .build.arch as $arch - | .source.entries[0].Builder - | if . == "" then - if $arch | startswith("windows-") then - # https://github.com/microsoft/Windows-Containers/issues/34 - "classic" - else - "buildkit" - end - else . end -; # input: "docker.io/library/foo:bar" # output: "foo:bar" def normalize_ref_to_docker: @@ -111,7 +97,7 @@ def build_annotations($buildUrl): "com.docker.official-images.bashbrew.arch": .build.arch, } + ( - .source.arches[.build.arch].lastStageFrom as $lastStageFrom + last(.source.arches[.build.arch].dockerfileParents[] | select(.Kind == "FROM") | .From) as $lastStageFrom | if $lastStageFrom then .build.parents[$lastStageFrom] as $lastStageDigest | { diff --git a/sources.sh b/sources.sh index 09294be..71ff2e6 100755 --- a/sources.sh +++ b/sources.sh @@ -90,11 +90,12 @@ bashbrew_cat() { {{ $a | json }}: { "tags": {{ $.Tags namespace false . | json }}, "archTags": {{ if $archNs -}} {{ $.Tags $archNs false . | json }} {{- else -}} [] {{- end }}, - "froms": {{ if getenv "HEAVY_CALC" -}} {{ $.ArchDockerFroms $a . | json }} {{- else -}} [] {{- end }}, - "lastStageFrom": {{ if getenv "HEAVY_CALC" -}} {{ $.ArchLastStageFrom $a . | json }} {{- else -}} null {{- end }}, + "dockerfileParents": {{ if getenv "HEAVY_CALC" -}} {{ $.ArchDockerfileParents $a . | json }} {{- else -}} [] {{- end }}, "platformString": {{ (ociPlatform $a).String | json }}, "platform": {{ ociPlatform $a | json }}, - "parents": { } + "parents": [ ], + "hostArch": null, + "crossHostArches": null } } } @@ -119,7 +120,7 @@ bashbrew_cat() { # merges heavy-to-calculate data from the second json input (list or map of sources) into the first json input (list of sources) # uses "mostlyUniqueBitsSum" as a rough analogue for sourceId to correlate data between the input lists -# (sourceId, reproducibleGitChecksum, SOURCE_DATE_EPOCH, froms, lastStageFrom) +# (sourceId, reproducibleGitChecksum, SOURCE_DATE_EPOCH, dockerfileParents) # echo '[{}, {},...] [{extraData},...]' | mergeData mergeData() { jq --tab --slurp ' @@ -130,7 +131,7 @@ mergeData() { File, Builder, - # "sourceId" normally does not include arch, but we have to because of the complexity below in needing to match/extract "froms" and "lastStageFrom" correctly since one or both sides of the `mergeData` input is always the uncombined version and we will otherwise lose/clobber data if our fake sourceId is not as granular as our input data + # "sourceId" normally does not include arch, but we have to because of the complexity below in needing to match/extract "dockerfileParents" correctly since one or both sides of the `mergeData` input is always the uncombined version and we will otherwise lose/clobber data if our fake sourceId is not as granular as our input data $arch, } | @json ; @@ -175,8 +176,7 @@ mergeData() { reproducibleGitChecksum, arches: { ($arch): { - froms: .arches[$arch].froms, - lastStageFrom: .arches[$arch].lastStageFrom, + dockerfileParents: .arches[$arch].dockerfileParents, }, }, } @@ -292,18 +292,46 @@ jq <<<"$sources" --tab --argjson pins "$externalPinsJson" ' .arches |= with_entries( .key as $arch | .value.parents = ( - .value.froms | unique_unsorted | map( - { (.): { + .value.dockerfileParents | map( + . + { sourceId: ( - . as $tag - | $tagArches[.][$arch] + $tagArches[.From][$arch] | if length > 1 then - error("too many sourceIds for \($tag) on \($arch): \(.)") + error("too many sourceIds for \(.From) on \($arch): \(.)") else .[0] end ), - pin: $pins[.], - } } - ) | add + pin: $pins[.From], + } + ) + ) + | ([ .value.parents[] | select(.Kind == "FROM" and .Platform == "$BUILDPLATFORM") ]) as $buildPinned + | .value.crossHostArches = ( + # null: no $BUILDPLATFORM parents at all, or at least one is not bashbrew-tracked (needs a live registry check, left to cmd/builds) + # []: every $BUILDPLATFORM parent *is* tracked but they share no common declared arch -- a real, structural problem, not something a live check would ever fix + # otherwise: the actual joint intersection of declared architectures + if ($buildPinned | length) == 0 then + null + else + [ $buildPinned[] | ($tagArches[.From] | if . then keys else null end) ] as $declaredSets + | if any($declaredSets[]; . == null) then + null + else + reduce $declaredSets[] as $set (null; + if . == null then $set else map(select(IN(.; $set[]))) end + ) + end + end + ) + # hostArch: $arch itself if there are no $BUILDPLATFORM parents (native trivially *is* the host), or null if crossHostArches could not be computed or came back empty -- keeping "null" exclusive to "cmd/builds has more to do, or this can never work" makes it a precise, filterable signal instead of also meaning "not applicable" + | .value.hostArch = ( + .value.crossHostArches + | if ($buildPinned | length) == 0 then $arch + elif . == null then null + elif index($arch) then $arch + elif index("amd64") then "amd64" + elif length > 0 then sort[0] + else null + end ) ) )