Skip to content

Commit c77f720

Browse files
committed
Add Oracle Linux image variants
The primary benefits of this are arm64 support (in 8.0) and smaller images (in 5.7 and 8.0). ```console $ docker images mysql --format 'table {{ .Tag }}\t{{ .Size }}' | sort -rV TAG SIZE 8.0-oracle 431MB 8.0-debian 519MB 5.7-oracle 395MB 5.7-debian 448MB ```
1 parent b06a707 commit c77f720

7 files changed

+505
-47
lines changed

5.7/Dockerfile.oracle

Lines changed: 108 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

8.0/Dockerfile.oracle

Lines changed: 111 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apply-templates.sh

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,18 @@ generated_warning() {
3131
for version; do
3232
export version
3333

34-
debianVersion="$(jq -r '.[env.version].debian // ""' versions.json)"
35-
if [ -n "$debianVersion" ]; then
36-
dockerfile='Dockerfile.debian'
37-
38-
{
39-
generated_warning
40-
gawk -f "$jqt" "template/$dockerfile"
41-
} > "$version/$dockerfile"
42-
fi
34+
for variant in oracle debian; do
35+
export variant
36+
37+
variantVersion="$(jq -r '.[env.version][env.variant] // {} | .version // ""' versions.json)"
38+
if [ -n "$variantVersion" ]; then
39+
dockerfile="Dockerfile.$variant"
40+
{
41+
generated_warning
42+
gawk -f "$jqt" "template/$dockerfile"
43+
} > "$version/$dockerfile"
44+
fi
45+
done
4346

4447
cp -a template/docker-entrypoint.sh "$version/docker-entrypoint.sh"
4548
done

generate-stackbrew-library.sh

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@ declare -A aliases=(
66
[8.0]='8 latest'
77
)
88

9+
defaultDefaultVariant='oracle'
10+
declare -A defaultVariants=(
11+
[5.7]='debian'
12+
[8.0]='debian'
13+
)
14+
915
self="$(basename "$BASH_SOURCE")"
1016
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
1117

@@ -58,9 +64,8 @@ join() {
5864

5965
for version; do
6066
export version
61-
df='Dockerfile.debian'
62-
commit="$(dirCommit "$version" "$df")"
6367

68+
defaultVariant="${defaultVariants[$version]:-$defaultDefaultVariant}"
6469
fullVersion="$(jq -r '.[env.version].version' versions.json)"
6570

6671
versionAliases=()
@@ -73,11 +78,27 @@ for version; do
7378
${aliases[$version]:-}
7479
)
7580

76-
echo
77-
cat <<-EOE
78-
Tags: $(join ', ' "${versionAliases[@]}")
79-
GitCommit: $commit
80-
Directory: $version
81-
File: $df
82-
EOE
81+
for variant in oracle debian; do
82+
df="Dockerfile.$variant"
83+
commit="$(dirCommit "$version" "$df")"
84+
85+
variantAliases=( "${versionAliases[@]/%/-$variant}" )
86+
variantAliases=( "${variantAliases[@]//latest-/}" )
87+
if [ "$variant" = "$defaultVariant" ]; then
88+
variantAliases=( "${versionAliases[@]}" "${variantAliases[@]}" )
89+
fi
90+
91+
# TODO if the list of architectures supported by MySQL ever is greater than that of the base image it's FROM, this list will need to be filtered
92+
export variant
93+
variantArches="$(jq -r '.[env.version][env.variant].architectures | join(", ")' versions.json)"
94+
95+
echo
96+
cat <<-EOE
97+
Tags: $(join ', ' "${variantAliases[@]}")
98+
Architectures: $variantArches
99+
GitCommit: $commit
100+
Directory: $version
101+
File: $df
102+
EOE
103+
done
83104
done

0 commit comments

Comments
 (0)