Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Initial Builder: oci-import support
Browse files Browse the repository at this point in the history
tianon committed Feb 23, 2024
1 parent 644ee1a commit df02227
Showing 62 changed files with 588 additions and 44 deletions.
7 changes: 6 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -35,7 +35,7 @@ jobs:
run: |
strategy="$(GENERATE_STACKBREW_LIBRARY='.github/workflows/fake-gsl.sh' "$BASHBREW_SCRIPTS/github-actions/generate.sh")"
strategy="$(.github/workflows/munge-build.sh -c <<<"$strategy")"
strategy="$(.github/workflows/munge-debian-unstable.sh -c <<<"$strategy")"
strategy="$(.github/workflows/munge-unstable.sh -c <<<"$strategy")"
EOF="EOF-$RANDOM-$RANDOM-$RANDOM"
echo "strategy<<$EOF" >> "$GITHUB_OUTPUT"
@@ -47,8 +47,11 @@ jobs:
strategy: ${{ fromJson(needs.generate-jobs.outputs.strategy) }}
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
env:
BASHBREW_ARCH: amd64 # TODO consider using "$BASHBREW_SCRIPTS/bashbrew-host-arch.sh" ? (would make it harder to force i386 in our matrix too, so explicit is probably better)
steps:
- uses: actions/checkout@v3
- uses: docker-library/bashbrew@HEAD # build.sh needs bashbrew
- name: Prepare Environment
run: ${{ matrix.runs.prepare }}
- name: Pull Dependencies
@@ -61,3 +64,5 @@ jobs:
run: ${{ matrix.runs.test }}
- name: '"docker images"'
run: ${{ matrix.runs.images }}
- name: Git Diff # see "munge-build.sh"
run: 'git diff --exit-code'
10 changes: 9 additions & 1 deletion .github/workflows/munge-build.sh
Original file line number Diff line number Diff line change
@@ -3,6 +3,14 @@ set -Eeuo pipefail

jq '
.matrix.include |= map(
.runs.build = "./build.sh " + (.meta.entries[].directory | @sh) + "\n" + (.runs.build | sub(" --file [^ ]+ "; " "))
.runs.build = (
[
"dir=" + (.meta.entries[].directory | @sh),
"rm -rf \"$dir/$BASHBREW_ARCH\"", # make sure our OCI directory is clean so we can "git diff --exit-code" later
"./build.sh \"$dir\"",
(.runs.build | sub(" --file [^ ]+ "; " ")),
empty
] | join("\n")
)
)
' "$@"
24 changes: 0 additions & 24 deletions .github/workflows/munge-debian-unstable.sh

This file was deleted.

22 changes: 22 additions & 0 deletions .github/workflows/munge-unstable.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#!/usr/bin/env bash
set -Eeuo pipefail

# much easier to get correct quoting/escaping if we define "sedExpr" outside the jq expression
jq --arg sedExpr 's/(FROM debian:)[^ -]+/\1unstable/g; s/(FROM alpine:)[^ -]+/\1edge/g' '
.matrix.include += [
.matrix.include[]
| select(.name | test(" [(].+[)]") | not) # ignore any existing munged builds
| select(.os | startswith("windows-") | not)
| select(.meta.froms | any(startswith("debian:") or startswith("alpine:")))
| .name += " (unstable)"
| .runs.prepare += ([
"",
"# pull debian:unstable / alpine:edge variants of base images for non-Debian Stable architectures (riscv64)",
"# https://github.com/docker-library/oi-janky-groovy/blob/0f8796a8aeedca90aba0a7e102f35ea172a23bb3/tianon/busybox/arch-pipeline.groovy#L68-L71",
"sed -ri -e \($sedExpr | @sh) */*/Dockerfile.builder",
"git diff */*/Dockerfile.builder",
"git add */*/Dockerfile.builder", # to make sure "git diff --exit-code" ignores this (expected) change
empty
] | join("\n"))
]
' "$@"
4 changes: 3 additions & 1 deletion Dockerfile.template
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# this isn't used for the official published images anymore, but is included for backwards compatibility
# see https://github.com/docker-library/bashbrew/issues/51
FROM scratch
ADD busybox.tar.xz /
ADD busybox.tar.gz /
CMD ["sh"]
5 changes: 5 additions & 0 deletions apply-templates.sh
Original file line number Diff line number Diff line change
@@ -35,16 +35,21 @@ for version; do
variants="$(jq -r '.[env.version].variants | map(@sh) | join(" ")' versions.json)"
eval "variants=( $variants )"

# TODO somehow make sure this deletes any content we're not generating (without accidentally deleting potentialy generated tarballs for the things we *do* care about)

for variant in "${variants[@]}"; do
export variant

echo "processing $version/$variant ..."

mkdir -p "$version/$variant"

{
generated_warning
gawk -f "$jqt" Dockerfile-builder.template
} > "$version/$variant/Dockerfile.builder"

cp Dockerfile.template "$version/$variant/Dockerfile"
ln -svfT amd64/rootfs.tar.gz "$version/$variant/busybox.tar.gz"
done
done
117 changes: 113 additions & 4 deletions build.sh
Original file line number Diff line number Diff line change
@@ -8,11 +8,39 @@ if [ "$#" -eq 0 ]; then
eval "set -- $dirs"
fi

[ -n "$BASHBREW_ARCH" ]
platformString="$(bashbrew cat --format '{{ ociPlatform arch }}' <(echo 'Maintainers: empty hack (@example)'))"
platform="$(bashbrew cat --format '{{ ociPlatform arch | json }}' <(echo 'Maintainers: empty hack (@example)'))"

for dir; do
base="busybox:${dir////-}"
variant="$(basename "$dir")"
base="busybox:${dir////-}-$BASHBREW_ARCH"

froms="$(awk 'toupper($1) == "FROM" { print $2 }' "$dir/Dockerfile.builder")"
for from in "$froms"; do
if ! bashbrew remote arches --json "$from" | jq -e '.arches | has(env.BASHBREW_ARCH)' > /dev/null; then
echo >&2 "warning: '$base' is 'FROM $from' which does not support '$BASHBREW_ARCH'; skipping"
continue 2
fi
done

(
set -x
docker build -t "$base-builder" -f "$dir/Dockerfile.builder" "$dir"

# TODO save the output of "bashbrew remote arches" above so we can "--build-context" here?
docker buildx build \
--progress=plain \
--platform "$platformString" \
--pull \
--load \
--tag "$base-builder" \
--file "$dir/Dockerfile.builder" \
"$dir"

oci="$dir/$BASHBREW_ARCH"
rm -rf "$oci"
mkdir "$oci" "$oci/blobs" "$oci/blobs/sha256"

docker run --rm "$base-builder" \
tar \
--create \
@@ -22,8 +50,89 @@ for dir; do
--sort name \
--mtime /usr/src/busybox.SOURCE_DATE_EPOCH --clamp-mtime \
. \
| xz -T0 -z9 > "$dir/busybox.tar.xz"
sha256sum "$dir/busybox.tar.xz"
> "$oci/rootfs.tar"

# if we gzip separately, we can calculate the diffid without decompressing
diffId="$(sha256sum "$oci/rootfs.tar" | cut -d' ' -f1)"
diffId="sha256:$diffId"

# we need to use the container's gzip so it's more likely reproducible over time (and using busybox's own gzip is a cute touch 😀)
docker run -i --rm "$base-builder" chroot rootfs gzip -c < "$oci/rootfs.tar" > "$oci/rootfs.tar.gz"
rm "$oci/rootfs.tar"
rootfs="$(sha256sum "$oci/rootfs.tar.gz" | cut -d' ' -f1)"
ln -svfT --relative "$oci/rootfs.tar.gz" "$oci/blobs/sha256/$rootfs"
rootfsSize="$(stat --format '%s' --dereference "$oci/blobs/sha256/$rootfs")"
rootfs="sha256:$rootfs"

SOURCE_DATE_EPOCH="$(docker run --rm "$base-builder" cat /usr/src/busybox.SOURCE_DATE_EPOCH)"
createdBy="$(docker run --rm --env variant="$variant" "$base-builder" sh -euc '. /etc/os-release && echo "BusyBox $BUSYBOX_VERSION ($variant)${BUILDROOT_VERSION:+, Buildroot $BUILDROOT_VERSION}, ${NAME%% *} $VERSION_ID"')"
jq -n --tab --arg SOURCE_DATE_EPOCH "$SOURCE_DATE_EPOCH" --arg diffId "$diffId" --arg createdBy "$createdBy" --argjson platform "$platform" '
($SOURCE_DATE_EPOCH | tonumber | strftime("%Y-%m-%dT%H:%M:%SZ")) as $created
| {
config: {
Cmd: [ "sh" ],
},
created: $created,
history: [ {
created: $created,
created_by: $createdBy,
} ],
rootfs: {
type: "layers",
diff_ids: [ $diffId ],
},
} + $platform
' > "$oci/image-config.json"
config="$(sha256sum "$oci/image-config.json" | cut -d' ' -f1)"
ln -svfT --relative "$oci/image-config.json" "$oci/blobs/sha256/$config"
configSize="$(stat --format '%s' --dereference "$oci/blobs/sha256/$config")"
config="sha256:$config"

version="$(cut <<<"$createdBy" -d' ' -f2)" # a better way to scrape the BusyBox version? maybe this is fine (want to avoid yet another container run)
jq -n --tab --arg version "$version" --arg variant "$variant" --arg config "$config" --arg configSize "$configSize" --arg rootfs "$rootfs" --arg rootfsSize "$rootfsSize" '
{
schemaVersion: 2,
mediaType: "application/vnd.oci.image.manifest.v1+json",
config: {
mediaType: "application/vnd.oci.image.config.v1+json",
digest: $config,
size: ($configSize | tonumber),
},
layers: [ {
mediaType: "application/vnd.oci.image.layer.v1.tar+gzip",
digest: $rootfs,
size: ($rootfsSize | tonumber),
} ],
annotations: {
"org.opencontainers.image.url": "https://github.com/docker-library/busybox",
"org.opencontainers.image.version": ($version + "-" + $variant),
},
}
' > "$oci/image-manifest.json"
manifest="$(sha256sum "$oci/image-manifest.json" | cut -d' ' -f1)"
ln -svfT --relative "$oci/image-manifest.json" "$oci/blobs/sha256/$manifest"
manifestSize="$(stat --format '%s' --dereference "$oci/blobs/sha256/$manifest")"
manifest="sha256:$manifest"

jq -nc '{ imageLayoutVersion:"1.0.0" }' > "$oci/oci-layout"
jq -n --tab --arg version "$version" --arg variant "$variant" --arg manifest "$manifest" --arg manifestSize "$manifestSize" --argjson platform "$platform" '
{
schemaVersion: 2,
mediaType: "application/vnd.oci.image.index.v1+json",
manifests: [ {
mediaType: "application/vnd.oci.image.manifest.v1+json",
digest: $manifest,
size: ($manifestSize | tonumber),
platform: $platform,
annotations: {
"org.opencontainers.image.ref.name": ("busybox:" + $version + "-" + $variant),
"io.containerd.image.name": ("busybox:" + $version + "-" + $variant),
},
} ],
}
' > "$oci/index.json"

ln -svfT --relative "$oci/rootfs.tar.gz" "$dir/busybox.tar.gz"
docker build -t "$base-test" "$dir"
docker run --rm "$base-test" sh -xec 'true'

23 changes: 16 additions & 7 deletions generate-stackbrew-library.sh
Original file line number Diff line number Diff line change
@@ -34,6 +34,8 @@ Maintainers: Tianon Gravi <[email protected]> (@tianon),
Joseph Ferguson <[email protected]> (@yosifkit)
GitRepo: $gitHubUrl.git
GitCommit: $selfCommit
Builder: oci-import
File: index.json
EOH
for arch in "${arches[@]}"; do
commit="${archCommits[$arch]}"
@@ -97,6 +99,7 @@ for version; do
fi
versionAliases+=( latest )

actualArches=()
declare -A archLatestDir=()
for variant in "${variants[@]}"; do
dir="$version/$variant"
@@ -107,25 +110,31 @@ for version; do
variantArches=()
for arch in "${arches[@]}"; do
archCommit="${archCommits[$arch]}"
if wget --quiet --spider -O /dev/null -o /dev/null "$rawGitUrl/$archCommit/$dir/busybox.tar.xz"; then
if wget --quiet --spider -O /dev/null -o /dev/null "$rawGitUrl/$archCommit/$dir/$arch/rootfs.tar.gz"; then
variantArches+=( "$arch" )
: "${archLatestDir[$arch]:=$dir}" # record the first supported directory per architecture for "latest" and friends
if [ -z "${archLatestDir[$arch]:-}" ]; then
# record the first supported directory per architecture for "latest" and friends
archLatestDir["$arch"]="$dir/$arch"
actualArches+=( "$arch" )
fi
fi
done

if _tags "${variantAliases[@]}"; then
if [ "${#variantArches[@]}" -gt 0 ] && _tags "${variantAliases[@]}"; then
cat <<-EOE
Architectures: $(join ', ' "${variantArches[@]}")
Directory: $dir
EOE
for arch in "${variantArches[@]}"; do
echo "$arch-Directory: $dir/$arch"
done
fi
done

if _tags "${versionAliases[@]}"; then
if [ "${#actualArches[@]}" -gt 0 ] && _tags "${versionAliases[@]}"; then
cat <<-EOE
Architectures: $(join ', ' "${arches[@]}")
Architectures: $(join ', ' "${actualArches[@]}")
EOE
for arch in "${arches[@]}"; do
for arch in "${actualArches[@]}"; do
archDir="${archLatestDir[$arch]}"
cat <<-EOA
${arch}-Directory: $archDir
4 changes: 3 additions & 1 deletion latest-1/glibc/Dockerfile

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

22 changes: 22 additions & 0 deletions latest-1/glibc/amd64/image-config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"config": {
"Cmd": [
"sh"
]
},
"created": "2021-12-26T16:56:57Z",
"history": [
{
"created": "2021-12-26T16:56:57Z",
"created_by": "BusyBox 1.35.0 (glibc), Debian 12"
}
],
"rootfs": {
"type": "layers",
"diff_ids": [
"sha256:be94c013eea8cbd66c1fc201cd544144cf5befd123bececbe4ca2453e29314b6"
]
},
"architecture": "amd64",
"os": "linux"
}
20 changes: 20 additions & 0 deletions latest-1/glibc/amd64/image-manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"schemaVersion": 2,
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"config": {
"mediaType": "application/vnd.oci.image.config.v1+json",
"digest": "sha256:1c10e93757391bd459976f6382e0c0e03a0af3f239cd745424b06d3b4737f60e",
"size": 372
},
"layers": [
{
"mediaType": "application/vnd.oci.image.layer.v1.tar+gzip",
"digest": "sha256:be454047891e51dc9c733f98c5fdeae2e1e82b1f12a2bd052b4c22e1161f1bc0",
"size": 2148915
}
],
"annotations": {
"org.opencontainers.image.url": "https://github.com/docker-library/busybox",
"org.opencontainers.image.version": "1.35.0-glibc"
}
}
19 changes: 19 additions & 0 deletions latest-1/glibc/amd64/index.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"schemaVersion": 2,
"mediaType": "application/vnd.oci.image.index.v1+json",
"manifests": [
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"digest": "sha256:da78e77ef445a26ffe297167a7e1e046766a57d2ebcf9b19723894e2a636aee1",
"size": 610,
"platform": {
"architecture": "amd64",
"os": "linux"
},
"annotations": {
"org.opencontainers.image.ref.name": "busybox:1.35.0-glibc",
"io.containerd.image.name": "busybox:1.35.0-glibc"
}
}
]
}
1 change: 1 addition & 0 deletions latest-1/glibc/amd64/oci-layout
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"imageLayoutVersion":"1.0.0"}
1 change: 1 addition & 0 deletions latest-1/glibc/busybox.tar.gz
4 changes: 3 additions & 1 deletion latest-1/musl/Dockerfile

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

22 changes: 22 additions & 0 deletions latest-1/musl/amd64/image-config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"config": {
"Cmd": [
"sh"
]
},
"created": "2021-12-26T16:56:57Z",
"history": [
{
"created": "2021-12-26T16:56:57Z",
"created_by": "BusyBox 1.35.0 (musl), Alpine 3.19.1"
}
],
"rootfs": {
"type": "layers",
"diff_ids": [
"sha256:e81af897a6ed42bf107335af397aee8b165cb545b01ebdda4cbd9fff72c51fdb"
]
},
"architecture": "amd64",
"os": "linux"
}
20 changes: 20 additions & 0 deletions latest-1/musl/amd64/image-manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"schemaVersion": 2,
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"config": {
"mediaType": "application/vnd.oci.image.config.v1+json",
"digest": "sha256:f36b741eb9675622ca20443a43b42d5dae106e346115faf4b4604a51e63bd421",
"size": 375
},
"layers": [
{
"mediaType": "application/vnd.oci.image.layer.v1.tar+gzip",
"digest": "sha256:7e3712170429f1cb4fc838e6ec80548d6af2778301f3c88a57e4178d7aa16818",
"size": 849546
}
],
"annotations": {
"org.opencontainers.image.url": "https://github.com/docker-library/busybox",
"org.opencontainers.image.version": "1.35.0-musl"
}
}
19 changes: 19 additions & 0 deletions latest-1/musl/amd64/index.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"schemaVersion": 2,
"mediaType": "application/vnd.oci.image.index.v1+json",
"manifests": [
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"digest": "sha256:ab169714e570fc081439d21c6fefccdc40841c722a5ced84af57da7ccacce8e3",
"size": 608,
"platform": {
"architecture": "amd64",
"os": "linux"
},
"annotations": {
"org.opencontainers.image.ref.name": "busybox:1.35.0-musl",
"io.containerd.image.name": "busybox:1.35.0-musl"
}
}
]
}
1 change: 1 addition & 0 deletions latest-1/musl/amd64/oci-layout
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"imageLayoutVersion":"1.0.0"}
1 change: 1 addition & 0 deletions latest-1/musl/busybox.tar.gz
4 changes: 3 additions & 1 deletion latest-1/uclibc/Dockerfile

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

22 changes: 22 additions & 0 deletions latest-1/uclibc/amd64/image-config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"config": {
"Cmd": [
"sh"
]
},
"created": "2021-12-26T16:56:57Z",
"history": [
{
"created": "2021-12-26T16:56:57Z",
"created_by": "BusyBox 1.35.0 (uclibc), Buildroot 2023.11.1, Debian 12"
}
],
"rootfs": {
"type": "layers",
"diff_ids": [
"sha256:091fda9c6234d04b8dad2a58ab716d819a8ed19d9d967681d8c84f38a8a5ec9a"
]
},
"architecture": "amd64",
"os": "linux"
}
20 changes: 20 additions & 0 deletions latest-1/uclibc/amd64/image-manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"schemaVersion": 2,
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"config": {
"mediaType": "application/vnd.oci.image.config.v1+json",
"digest": "sha256:73845083f9a000342cd00a4211c7487091e110875f6d08fa59b23837e88392f4",
"size": 394
},
"layers": [
{
"mediaType": "application/vnd.oci.image.layer.v1.tar+gzip",
"digest": "sha256:bc5a47da295fe344f245fda95b6e0df4bb783dbea338a47ccc296686e12751b6",
"size": 754106
}
],
"annotations": {
"org.opencontainers.image.url": "https://github.com/docker-library/busybox",
"org.opencontainers.image.version": "1.35.0-uclibc"
}
}
19 changes: 19 additions & 0 deletions latest-1/uclibc/amd64/index.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"schemaVersion": 2,
"mediaType": "application/vnd.oci.image.index.v1+json",
"manifests": [
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"digest": "sha256:9bd3480f69f87f9c0c8ad221ef54de4c7d93cf4b8844b5ea42d98d52fe736dda",
"size": 610,
"platform": {
"architecture": "amd64",
"os": "linux"
},
"annotations": {
"org.opencontainers.image.ref.name": "busybox:1.35.0-uclibc",
"io.containerd.image.name": "busybox:1.35.0-uclibc"
}
}
]
}
1 change: 1 addition & 0 deletions latest-1/uclibc/amd64/oci-layout
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"imageLayoutVersion":"1.0.0"}
1 change: 1 addition & 0 deletions latest-1/uclibc/busybox.tar.gz
4 changes: 3 additions & 1 deletion latest/glibc/Dockerfile

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

22 changes: 22 additions & 0 deletions latest/glibc/amd64/image-config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"config": {
"Cmd": [
"sh"
]
},
"created": "2023-05-18T22:34:17Z",
"history": [
{
"created": "2023-05-18T22:34:17Z",
"created_by": "BusyBox 1.36.1 (glibc), Debian 12"
}
],
"rootfs": {
"type": "layers",
"diff_ids": [
"sha256:95c4a60383f7b6eb6f7b8e153a07cd6e896de0476763bef39d0f6cf3400624bd"
]
},
"architecture": "amd64",
"os": "linux"
}
20 changes: 20 additions & 0 deletions latest/glibc/amd64/image-manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"schemaVersion": 2,
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"config": {
"mediaType": "application/vnd.oci.image.config.v1+json",
"digest": "sha256:ba5dc23f65d4cc4a4535bce55cf9e63b068eb02946e3422d3587e8ce803b6aab",
"size": 372
},
"layers": [
{
"mediaType": "application/vnd.oci.image.layer.v1.tar+gzip",
"digest": "sha256:7b2699543f22d5b8dc8d66a5873eb246767bca37232dee1e7a3b8c9956bceb0c",
"size": 2152262
}
],
"annotations": {
"org.opencontainers.image.url": "https://github.com/docker-library/busybox",
"org.opencontainers.image.version": "1.36.1-glibc"
}
}
19 changes: 19 additions & 0 deletions latest/glibc/amd64/index.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"schemaVersion": 2,
"mediaType": "application/vnd.oci.image.index.v1+json",
"manifests": [
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"digest": "sha256:4be429a5fbb2e71ae7958bfa558bc637cf3a61baf40a708cb8fff532b39e52d0",
"size": 610,
"platform": {
"architecture": "amd64",
"os": "linux"
},
"annotations": {
"org.opencontainers.image.ref.name": "busybox:1.36.1-glibc",
"io.containerd.image.name": "busybox:1.36.1-glibc"
}
}
]
}
1 change: 1 addition & 0 deletions latest/glibc/amd64/oci-layout
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"imageLayoutVersion":"1.0.0"}
1 change: 1 addition & 0 deletions latest/glibc/busybox.tar.gz
4 changes: 3 additions & 1 deletion latest/musl/Dockerfile

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

22 changes: 22 additions & 0 deletions latest/musl/amd64/image-config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"config": {
"Cmd": [
"sh"
]
},
"created": "2023-05-18T22:34:17Z",
"history": [
{
"created": "2023-05-18T22:34:17Z",
"created_by": "BusyBox 1.36.1 (musl), Alpine 3.19.1"
}
],
"rootfs": {
"type": "layers",
"diff_ids": [
"sha256:994bf8f4adc78c5c1e4a6b5e3b59ad57902b301e0e79255a3e95ea4b213a76bd"
]
},
"architecture": "amd64",
"os": "linux"
}
20 changes: 20 additions & 0 deletions latest/musl/amd64/image-manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"schemaVersion": 2,
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"config": {
"mediaType": "application/vnd.oci.image.config.v1+json",
"digest": "sha256:6e5e0f90c009d12db9478afe5656920e7bdd548e9fd8f50eab2be694102ae318",
"size": 375
},
"layers": [
{
"mediaType": "application/vnd.oci.image.layer.v1.tar+gzip",
"digest": "sha256:d6e6e2f0bb218b28aaad3f646fd30a36549d61bfbbdd7ad5d1d75b9d9e671297",
"size": 852587
}
],
"annotations": {
"org.opencontainers.image.url": "https://github.com/docker-library/busybox",
"org.opencontainers.image.version": "1.36.1-musl"
}
}
19 changes: 19 additions & 0 deletions latest/musl/amd64/index.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"schemaVersion": 2,
"mediaType": "application/vnd.oci.image.index.v1+json",
"manifests": [
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"digest": "sha256:b9d056b83bb6446fee29e89a7fcf10203c562c1f59586a6e2f39c903597bda34",
"size": 608,
"platform": {
"architecture": "amd64",
"os": "linux"
},
"annotations": {
"org.opencontainers.image.ref.name": "busybox:1.36.1-musl",
"io.containerd.image.name": "busybox:1.36.1-musl"
}
}
]
}
1 change: 1 addition & 0 deletions latest/musl/amd64/oci-layout
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"imageLayoutVersion":"1.0.0"}
1 change: 1 addition & 0 deletions latest/musl/busybox.tar.gz
4 changes: 3 additions & 1 deletion latest/uclibc/Dockerfile

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

22 changes: 22 additions & 0 deletions latest/uclibc/amd64/image-config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"config": {
"Cmd": [
"sh"
]
},
"created": "2023-05-18T22:34:17Z",
"history": [
{
"created": "2023-05-18T22:34:17Z",
"created_by": "BusyBox 1.36.1 (uclibc), Buildroot 2023.11.1, Debian 12"
}
],
"rootfs": {
"type": "layers",
"diff_ids": [
"sha256:70d875e518ac9d2a6cda536a5422ba616fafcb661d71888ba29e5a031a248a3e"
]
},
"architecture": "amd64",
"os": "linux"
}
20 changes: 20 additions & 0 deletions latest/uclibc/amd64/image-manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"schemaVersion": 2,
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"config": {
"mediaType": "application/vnd.oci.image.config.v1+json",
"digest": "sha256:23c25518807a447b99381ac33548b6a813ce904b613f11f5e19e1ea70e9c49e8",
"size": 394
},
"layers": [
{
"mediaType": "application/vnd.oci.image.layer.v1.tar+gzip",
"digest": "sha256:cd82127e91e4b4656e681824cb3687b64060f91d9b44a695055a3475ac0dcd89",
"size": 757887
}
],
"annotations": {
"org.opencontainers.image.url": "https://github.com/docker-library/busybox",
"org.opencontainers.image.version": "1.36.1-uclibc"
}
}
19 changes: 19 additions & 0 deletions latest/uclibc/amd64/index.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"schemaVersion": 2,
"mediaType": "application/vnd.oci.image.index.v1+json",
"manifests": [
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"digest": "sha256:478851d8396007d974a545c934638e208c2e83f20c413323d373ff87f2a4bce0",
"size": 610,
"platform": {
"architecture": "amd64",
"os": "linux"
},
"annotations": {
"org.opencontainers.image.ref.name": "busybox:1.36.1-uclibc",
"io.containerd.image.name": "busybox:1.36.1-uclibc"
}
}
]
}
1 change: 1 addition & 0 deletions latest/uclibc/amd64/oci-layout
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"imageLayoutVersion":"1.0.0"}
1 change: 1 addition & 0 deletions latest/uclibc/busybox.tar.gz

0 comments on commit df02227

Please sign in to comment.