Skip to content

Commit d126529

Browse files
committed
Update "tianon/gosu" Docker Hub image to build via bashbrew instead of bespoke script
This gives us nice provenance, etc; see https://explore.ggcr.dev/?image=tianon/gosu:1.16
1 parent 99f2f75 commit d126529

File tree

5 files changed

+54
-96
lines changed

5 files changed

+54
-96
lines changed

hub/alpine.yml

Lines changed: 0 additions & 9 deletions
This file was deleted.

hub/build.sh

Lines changed: 0 additions & 66 deletions
This file was deleted.

hub/debian.yml

Lines changed: 0 additions & 10 deletions
This file was deleted.

hub/gsl.sh

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
#!/usr/bin/env bash
2+
set -Eeuo pipefail
3+
4+
preferredOrder=( alpine debian )
5+
6+
dir="$(dirname "$BASH_SOURCE")"
7+
cd "$dir"
8+
9+
commit="$(git log -1 --format='format:%H' HEAD -- .)"
10+
cat <<-EOH
11+
Maintainers: Tianon Gravi <tianon@tianon.xyz> (@tianon)
12+
GitRepo: https://github.com/tianon/gosu.git
13+
GitCommit: $commit
14+
Directory: hub
15+
Builder: buildkit
16+
EOH
17+
18+
version=
19+
i=0; jq=; froms=()
20+
for variant in "${preferredOrder[@]}"; do
21+
from="$(awk 'toupper($1) == "FROM" { print $2; exit }' "Dockerfile.$variant")" # TODO multi-stage?
22+
variantVersion="$(awk 'toupper($1) == "ENV" && toupper($2) == "GOSU_VERSION" { print $3; exit }' "Dockerfile.$variant")"
23+
version="${version:-$variantVersion}"
24+
if [ "$version" != "$variantVersion" ]; then
25+
echo >&2 "error: mismatched version in '$variant' ('$version' vs '$variantVersion')"
26+
exit 1
27+
fi
28+
jq="${jq:+$jq, }$variant: (.[$i].arches | keys_unsorted)"
29+
froms["$i"]="$from"
30+
(( i++ )) || :
31+
done
32+
arches="$(bashbrew remote arches --json "${froms[@]}" | jq -sc "{ $jq }")" # { alpine: [ "amd64", ... ], debian: [ "amd64", ... ] }
33+
34+
queue="$(jq <<<"$arches" -r 'to_entries | map(@sh "variant=\(.key)\narch=\(.value[])") | map(@sh) | join("\n")')"
35+
eval "queue=( $queue )"
36+
37+
declare -A seenArches=()
38+
for item in "${queue[@]}"; do
39+
eval "$item" # variant=yyy arch=xxx
40+
[ -n "$variant" ]
41+
[ -n "$arch" ]
42+
tags="$variant-$arch"
43+
sharedTags="$variant, $version-$variant"
44+
if [ -z "${seenArches["$arch"]:-}" ]; then
45+
tags+=", $arch"
46+
sharedTags+=", $version, latest"
47+
fi
48+
echo
49+
echo "Tags: $tags"
50+
[ -z "$sharedTags" ] || echo "SharedTags: $sharedTags"
51+
echo "Architectures: $arch"
52+
echo "File: Dockerfile.$variant"
53+
: "${seenArches["$arch"]:=1}"
54+
done

hub/latest.yml

Lines changed: 0 additions & 11 deletions
This file was deleted.

0 commit comments

Comments
 (0)