@@ -33,6 +33,22 @@ dirCommit() {
33
33
)
34
34
}
35
35
36
+ getArches () {
37
+ local repo=" $1 " ; shift
38
+ local officialImagesUrl=' https://github.com/docker-library/official-images/raw/master/library/'
39
+
40
+ eval " declare -A -g parentRepoToArches=( $(
41
+ find -name ' Dockerfile' -exec awk '
42
+ toupper($1) == "FROM" && $2 !~ /^(' " $repo " ' |scratch|microsoft\/[^:]+)(:|$)/ {
43
+ print "' " $officialImagesUrl " ' " $2
44
+ }
45
+ ' ' {}' + \
46
+ | sort -u \
47
+ | xargs bashbrew cat --format ' [{{ .RepoName }}:{{ .TagName }}]="{{ join " " .TagEntry.Architectures }}"'
48
+ ) )"
49
+ }
50
+ getArches ' ruby'
51
+
36
52
cat << -EOH
37
53
# this file is generated via https://github.com/docker-library/ruby/blob/$( fileCommit " $self " ) /$self
38
54
@@ -51,6 +67,9 @@ join() {
51
67
for version in " ${versions[@]} " ; do
52
68
commit=" $( dirCommit " $version " ) "
53
69
70
+ parent=" $( awk ' toupper($1) == "FROM" { print $2 }' " $version /Dockerfile" ) "
71
+ arches=" ${parentRepoToArches[$parent]} "
72
+
54
73
fullVersion=" $( git show " $commit " :" $version /Dockerfile" | awk ' $1 == "ENV" && $2 == "RUBY_VERSION" { print $3; exit }' ) "
55
74
56
75
versionAliases=(
@@ -62,6 +81,7 @@ for version in "${versions[@]}"; do
62
81
echo
63
82
cat << -EOE
64
83
Tags: $( join ' , ' " ${versionAliases[@]} " )
84
+ Architectures: $( join ' , ' $arches )
65
85
GitCommit: $commit
66
86
Directory: $version
67
87
EOE
@@ -74,9 +94,18 @@ for version in "${versions[@]}"; do
74
94
variantAliases=( " ${versionAliases[@]/%/ -$variant } " )
75
95
variantAliases=( " ${variantAliases[@]// latest-/ } " )
76
96
97
+ case " $variant " in
98
+ onbuild) variantArches=" $arches " ;;
99
+ * )
100
+ variantParent=" $( awk ' toupper($1) == "FROM" { print $2 }' " $version /$variant /Dockerfile" ) "
101
+ variantArches=" ${parentRepoToArches[$variantParent]} "
102
+ ;;
103
+ esac
104
+
77
105
echo
78
106
cat << -EOE
79
107
Tags: $( join ' , ' " ${variantAliases[@]} " )
108
+ Architectures: $( join ' , ' $variantArches )
80
109
GitCommit: $commit
81
110
Directory: $version /$variant
82
111
EOE
0 commit comments