@@ -47,7 +47,7 @@ for version in "${versions[@]}"; do
47
47
for dpkgArch in $( dpkgArches " $version " ) ; do
48
48
tarArch=" $( dpkgToJuliaTarArch " $version " " $dpkgArch " ) "
49
49
dirArch=" $( dpkgToJuliaDirArch " $version " " $dpkgArch " ) "
50
- sha256=" $( echo " $sha256s " | grep " julia-${fullVersion} -linux-${tarArch} .tar.gz$" | cut -d' ' -f1 || :) "
50
+ sha256=" $( grep " julia-${fullVersion} -linux-${tarArch} .tar.gz$" <<< " $sha256s " | cut -d' ' -f1 || :) "
51
51
if [ -z " $sha256 " ]; then
52
52
echo >&2 " warning: cannot find sha256 for $fullVersion on arch $tarArch / $dirArch ($dpkgArch ); skipping"
53
53
continue
@@ -59,12 +59,13 @@ for version in "${versions[@]}"; do
59
59
linuxArchCase+=$' \t\t ' ' *) echo >&2 "error: current architecture ($dpkgArch) does not have a corresponding Julia binary release"; exit 1 ;; ' $' \\\n '
60
60
linuxArchCase+=$' \t ' ' esac'
61
61
62
- winSha256=" $( echo " $sha256s " | grep " julia-${fullVersion} -win64.exe$" | cut -d' ' -f1) "
62
+ winSha256=" $( grep " julia-${fullVersion} -win64.exe$" <<< " $sha256s " | cut -d' ' -f1) "
63
63
64
64
echo " $version : $fullVersion "
65
65
66
66
for v in \
67
67
windows/windowsservercore-{ltsc2016,1809} \
68
+ alpine3.12 \
68
69
{stretch,buster} \
69
70
; do
70
71
dir=" $version /$v "
@@ -74,6 +75,7 @@ for version in "${versions[@]}"; do
74
75
75
76
case " $variant " in
76
77
windowsservercore-* ) template=' windowsservercore' ; tag=" ${variant#* -} " ;;
78
+ alpine* ) template=' alpine' ; tag=" ${variant# alpine} " ;;
77
79
* ) template=' debian' ; tag=" ${variant} -slim" ;;
78
80
esac
79
81
@@ -82,11 +84,26 @@ for version in "${versions[@]}"; do
82
84
tag=" $variant "
83
85
fi
84
86
87
+ variantArchCase=" $linuxArchCase "
88
+ if [ " $template " = ' alpine' ]; then
89
+ sha256=" $( grep " julia-${fullVersion} -musl-x86_64.tar.gz$" <<< " $sha256s" | cut -d' ' -f1 || :) "
90
+ [ -n " $sha256 " ] || continue
91
+ variantArchCase=' apkArch="$(apk --print-arch)"; ' $' \\\n '
92
+ variantArchCase+=$' \t ' ' case "$apkArch" in ' $' \\\n '
93
+ # TODO Alpine multiarch
94
+ variantArchCase+=' # amd64' $' \n '
95
+ tarArch=" $( dpkgToJuliaTarArch " $version " ' amd64' ) "
96
+ dirArch=" $( dpkgToJuliaDirArch " $version " ' amd64' ) "
97
+ variantArchCase+=$' \t\t ' " x86_64) tarArch='$tarArch '; dirArch='$dirArch '; sha256='$sha256 ' ;; " $' \\\n '
98
+ variantArchCase+=$' \t\t ' ' *) echo >&2 "error: current architecture ($apkArch) does not have a corresponding Julia binary release"; exit 1 ;; ' $' \\\n '
99
+ variantArchCase+=$' \t ' ' esac'
100
+ fi
101
+
85
102
sed -r \
86
103
-e ' s!%%JULIA_VERSION%%!' " $fullVersion " ' !g' \
87
104
-e ' s!%%TAG%%!' " $tag " ' !g' \
88
105
-e ' s!%%JULIA_WINDOWS_SHA256%%!' " $winSha256 " ' !g' \
89
- -e ' s!%%ARCH-CASE%%!' " $( sed_escape_rhs " $linuxArchCase " ) " ' !g' \
106
+ -e ' s!%%ARCH-CASE%%!' " $( sed_escape_rhs " $variantArchCase " ) " ' !g' \
90
107
" Dockerfile-$template .template" > " $dir /Dockerfile"
91
108
92
109
case " $dir " in
0 commit comments