|
1 | 1 | #!/bin/bash |
2 | 2 | set -eu |
3 | 3 |
|
| 4 | +defaultDebianSuite='stretch-slim' |
| 5 | +declare -A debianSuite=( |
| 6 | + [5.6]='jessie' |
| 7 | + [7.0]='jessie' |
| 8 | + [7.1]='jessie' |
| 9 | +) |
| 10 | +defaultAlpineVersion='3.6' |
| 11 | +declare -A alpineVersion=( |
| 12 | + [5.6]='3.4' |
| 13 | + [7.0]='3.4' |
| 14 | + [7.1]='3.4' |
| 15 | +) |
| 16 | + |
4 | 17 | declare -A aliases=( |
5 | 18 | [5.6]='5' |
6 | 19 | [7.1]='7 latest' |
@@ -70,50 +83,63 @@ join() { |
70 | 83 | } |
71 | 84 |
|
72 | 85 | for version in "${versions[@]}"; do |
73 | | - commit="$(dirCommit "$version")" |
74 | | - |
75 | | - fullVersion="$(git show "$commit":"$version/Dockerfile" | awk '$1 == "ENV" && $2 == "PHP_VERSION" { print $3; exit }')" |
76 | 86 |
|
77 | 87 | versionAliases=( |
78 | | - $fullVersion |
79 | 88 | $version |
80 | 89 | ${aliases[$version]:-} |
81 | 90 | ) |
82 | 91 |
|
83 | | - for variant in \ |
84 | | - '' \ |
85 | | - alpine \ |
86 | | - apache \ |
87 | | - fpm fpm/alpine \ |
88 | | - zts zts/alpine \ |
| 92 | + # order here controls the order of the library/ file |
| 93 | + for suite in \ |
| 94 | + stretch-slim \ |
| 95 | + jessie \ |
| 96 | + alpine3.6 \ |
| 97 | + alpine3.4 \ |
89 | 98 | ; do |
90 | | - dir="$version${variant:+/$variant}" |
91 | | - [ -f "$dir/Dockerfile" ] || continue |
92 | | - variant="${variant:-cli}" |
93 | | - |
94 | | - commit="$(dirCommit "$dir")" |
95 | | - |
96 | | - slash='/' |
97 | | - variantAliases=( "${versionAliases[@]/%/-${variant//$slash/-}}" ) |
98 | | - variantAliases=( "${variantAliases[@]//latest-/}" ) |
99 | | - if [ "$variant" = 'cli' ]; then |
100 | | - variantAliases+=( "${versionAliases[@]}" ) |
101 | | - fi |
102 | | - |
103 | | - variantParent="$(awk 'toupper($1) == "FROM" { print $2 }' "$dir/Dockerfile")" |
104 | | - variantArches="${parentRepoToArches[$variantParent]}" |
105 | | - |
106 | | - # 7.2 no longer supports s390x |
107 | | - if [[ "$version" = 7.* ]] && [ "$version" != '7.0' ] && [ "$version" != '7.1' ]; then |
108 | | - variantArches="$(echo " $variantArches " | sed -r -e 's/ s390x//g')" |
109 | | - fi |
110 | | - |
111 | | - echo |
112 | | - cat <<-EOE |
113 | | - Tags: $(join ', ' "${variantAliases[@]}") |
114 | | - Architectures: $(join ', ' $variantArches) |
115 | | - GitCommit: $commit |
116 | | - Directory: $dir |
117 | | - EOE |
| 99 | + for variant in \ |
| 100 | + cli \ |
| 101 | + apache \ |
| 102 | + fpm \ |
| 103 | + zts \ |
| 104 | + ; do |
| 105 | + dir="$version/$suite/$variant" |
| 106 | + [ -f "$dir/Dockerfile" ] || continue |
| 107 | + |
| 108 | + commit="$(dirCommit "$dir")" |
| 109 | + versionSuite="${debianSuite[$version]:-$defaultDebianSuite}" |
| 110 | + fullVersion="$(git show "$commit":"$dir/Dockerfile" | awk '$1 == "ENV" && $2 == "PHP_VERSION" { print $3; exit }')" |
| 111 | + |
| 112 | + baseAliases=( $fullVersion "${versionAliases[@]}" ) |
| 113 | + variantAliases=( "${baseAliases[@]/%/-$variant}" ) |
| 114 | + variantAliases=( "${variantAliases[@]//latest-/}" ) |
| 115 | + |
| 116 | + if [ "$variant" = 'cli' ]; then |
| 117 | + variantAliases+=( "${baseAliases[@]}" ) |
| 118 | + fi |
| 119 | + if [ "$suite" = "$versionSuite" ]; then |
| 120 | + variantAliases=( "${variantAliases[@]/%/-${suite%-slim}}" "${variantAliases[@]}" ) |
| 121 | + elif [ "${suite#alpine}" = "${alpineVersion[$version]:-$defaultAlpineVersion}" ] ; then |
| 122 | + variantAliases=( "${variantAliases[@]/%/-$suite}" "${variantAliases[@]/%/-alpine}" ) |
| 123 | + variantAliases=( "${variantAliases[@]//latest-/}" ) |
| 124 | + else |
| 125 | + variantAliases=( "${variantAliases[@]/%/-$suite}" ) |
| 126 | + fi |
| 127 | + |
| 128 | + variantParent="$(awk 'toupper($1) == "FROM" { print $2 }' "$dir/Dockerfile")" |
| 129 | + variantArches="${parentRepoToArches[$variantParent]}" |
| 130 | + |
| 131 | + # 7.2 no longer supports s390x |
| 132 | + if [[ "$version" = 7.* ]] && [ "$version" != '7.0' ] && [ "$version" != '7.1' ]; then |
| 133 | + variantArches="$(echo " $variantArches " | sed -r -e 's/ s390x//g')" |
| 134 | + fi |
| 135 | + |
| 136 | + echo |
| 137 | + cat <<-EOE |
| 138 | + Tags: $(join ', ' "${variantAliases[@]}") |
| 139 | + Architectures: $(join ', ' $variantArches) |
| 140 | + GitCommit: $commit |
| 141 | + Directory: $dir |
| 142 | + EOE |
| 143 | + done |
118 | 144 | done |
119 | 145 | done |
0 commit comments