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