Skip to content

Commit 815a93c

Browse files
authored
Merge pull request #61 from J0WI/bullseye-alpine-3.15
Bullseye and Alpine 3.15
2 parents ba50b9e + 60d6e4f commit 815a93c

File tree

7 files changed

+202
-13
lines changed

7 files changed

+202
-13
lines changed

1.0/stretch/Dockerfile renamed to 1.0/bullseye/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM debian:stretch
1+
FROM debian:bullseye-slim
22

33
RUN set -eux; \
44
apt-get update; \

1.6/alpine3.13/Dockerfile renamed to 1.6/alpine3.15/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM alpine:3.13
1+
FROM alpine:3.15
22

33
ENV JULIA_PATH /usr/local/julia
44
ENV PATH $JULIA_PATH/bin:$PATH

1.6/bullseye/Dockerfile

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
FROM debian:bullseye-slim
2+
3+
RUN set -eux; \
4+
apt-get update; \
5+
apt-get install -y --no-install-recommends \
6+
ca-certificates \
7+
# ERROR: no download agent available; install curl, wget, or fetch
8+
curl \
9+
; \
10+
rm -rf /var/lib/apt/lists/*
11+
12+
ENV JULIA_PATH /usr/local/julia
13+
ENV PATH $JULIA_PATH/bin:$PATH
14+
15+
# https://julialang.org/juliareleases.asc
16+
# Julia (Binary signing key) <[email protected]>
17+
ENV JULIA_GPG 3673DF529D9049477F76B37566E3C7DC03D6E495
18+
19+
# https://julialang.org/downloads/
20+
ENV JULIA_VERSION 1.6.4
21+
22+
RUN set -eux; \
23+
\
24+
savedAptMark="$(apt-mark showmanual)"; \
25+
if ! command -v gpg > /dev/null; then \
26+
apt-get update; \
27+
apt-get install -y --no-install-recommends \
28+
gnupg \
29+
dirmngr \
30+
; \
31+
rm -rf /var/lib/apt/lists/*; \
32+
fi; \
33+
\
34+
# https://julialang.org/downloads/#julia-command-line-version
35+
# https://julialang-s3.julialang.org/bin/checksums/julia-1.6.4.sha256
36+
# this "case" statement is generated via "update.sh"
37+
dpkgArch="$(dpkg --print-architecture)"; \
38+
case "${dpkgArch##*-}" in \
39+
# amd64
40+
amd64) tarArch='x86_64'; dirArch='x64'; sha256='52244ae47697e8073dfbc9d1251b0422f0dbd1fbe1a41da4b9f7ddf0506b2132' ;; \
41+
# arm32v7
42+
armhf) tarArch='armv7l'; dirArch='armv7l'; sha256='9ad3f6bd71eb6840d4cef1569855da20c0b4931a2bdf77703a64df672b0702a1' ;; \
43+
# arm64v8
44+
arm64) tarArch='aarch64'; dirArch='aarch64'; sha256='072daac7229c15fa41d0c1b65b8a3d6ee747323d02f5943da3846b075291b48b' ;; \
45+
# i386
46+
i386) tarArch='i686'; dirArch='x86'; sha256='9d43d642174cf22cf0fde18dc2578c84f357d2c619b9d846d3a6da4192ba48cf' ;; \
47+
*) echo >&2 "error: current architecture ($dpkgArch) does not have a corresponding Julia binary release"; exit 1 ;; \
48+
esac; \
49+
\
50+
folder="$(echo "$JULIA_VERSION" | cut -d. -f1-2)"; \
51+
curl -fL -o julia.tar.gz.asc "https://julialang-s3.julialang.org/bin/linux/${dirArch}/${folder}/julia-${JULIA_VERSION}-linux-${tarArch}.tar.gz.asc"; \
52+
curl -fL -o julia.tar.gz "https://julialang-s3.julialang.org/bin/linux/${dirArch}/${folder}/julia-${JULIA_VERSION}-linux-${tarArch}.tar.gz"; \
53+
\
54+
echo "${sha256} *julia.tar.gz" | sha256sum -c -; \
55+
\
56+
export GNUPGHOME="$(mktemp -d)"; \
57+
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$JULIA_GPG"; \
58+
gpg --batch --verify julia.tar.gz.asc julia.tar.gz; \
59+
command -v gpgconf > /dev/null && gpgconf --kill all; \
60+
rm -rf "$GNUPGHOME" julia.tar.gz.asc; \
61+
\
62+
mkdir "$JULIA_PATH"; \
63+
tar -xzf julia.tar.gz -C "$JULIA_PATH" --strip-components 1; \
64+
rm julia.tar.gz; \
65+
\
66+
apt-mark auto '.*' > /dev/null; \
67+
[ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; \
68+
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
69+
\
70+
# smoke test
71+
julia --version
72+
73+
CMD ["julia"]

1.7-rc/alpine3.15/Dockerfile

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
FROM alpine:3.15
2+
3+
ENV JULIA_PATH /usr/local/julia
4+
ENV PATH $JULIA_PATH/bin:$PATH
5+
6+
# https://julialang.org/juliareleases.asc
7+
# Julia (Binary signing key) <[email protected]>
8+
ENV JULIA_GPG 3673DF529D9049477F76B37566E3C7DC03D6E495
9+
10+
# https://julialang.org/downloads/
11+
ENV JULIA_VERSION 1.7.0-rc3
12+
13+
RUN set -eux; \
14+
\
15+
apk add --no-cache --virtual .fetch-deps gnupg; \
16+
\
17+
# https://julialang.org/downloads/#julia-command-line-version
18+
# https://julialang-s3.julialang.org/bin/checksums/julia-1.7.0-rc3.sha256
19+
# this "case" statement is generated via "update.sh"
20+
apkArch="$(apk --print-arch)"; \
21+
case "$apkArch" in \
22+
# amd64
23+
x86_64) tarArch='x86_64'; dirArch='x64'; sha256='68dc3d7b17fbcceea383b48d82c63c36b899e05f5cd7537a730d7578f65c40ea' ;; \
24+
*) echo >&2 "error: current architecture ($apkArch) does not have a corresponding Julia binary release"; exit 1 ;; \
25+
esac; \
26+
\
27+
folder="$(echo "$JULIA_VERSION" | cut -d. -f1-2)"; \
28+
wget -O julia.tar.gz.asc "https://julialang-s3.julialang.org/bin/musl/${dirArch}/${folder}/julia-${JULIA_VERSION}-musl-${tarArch}.tar.gz.asc"; \
29+
wget -O julia.tar.gz "https://julialang-s3.julialang.org/bin/musl/${dirArch}/${folder}/julia-${JULIA_VERSION}-musl-${tarArch}.tar.gz"; \
30+
\
31+
echo "${sha256} *julia.tar.gz" | sha256sum -c -; \
32+
\
33+
export GNUPGHOME="$(mktemp -d)"; \
34+
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$JULIA_GPG"; \
35+
gpg --batch --verify julia.tar.gz.asc julia.tar.gz; \
36+
command -v gpgconf > /dev/null && gpgconf --kill all; \
37+
rm -rf "$GNUPGHOME" julia.tar.gz.asc; \
38+
\
39+
mkdir "$JULIA_PATH"; \
40+
tar -xzf julia.tar.gz -C "$JULIA_PATH" --strip-components 1; \
41+
rm julia.tar.gz; \
42+
\
43+
apk del --no-network .fetch-deps; \
44+
\
45+
# smoke test
46+
julia --version
47+
48+
CMD ["julia"]

1.7-rc/bullseye/Dockerfile

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
FROM debian:bullseye-slim
2+
3+
RUN set -eux; \
4+
apt-get update; \
5+
apt-get install -y --no-install-recommends \
6+
ca-certificates \
7+
# ERROR: no download agent available; install curl, wget, or fetch
8+
curl \
9+
; \
10+
rm -rf /var/lib/apt/lists/*
11+
12+
ENV JULIA_PATH /usr/local/julia
13+
ENV PATH $JULIA_PATH/bin:$PATH
14+
15+
# https://julialang.org/juliareleases.asc
16+
# Julia (Binary signing key) <[email protected]>
17+
ENV JULIA_GPG 3673DF529D9049477F76B37566E3C7DC03D6E495
18+
19+
# https://julialang.org/downloads/
20+
ENV JULIA_VERSION 1.7.0-rc3
21+
22+
RUN set -eux; \
23+
\
24+
savedAptMark="$(apt-mark showmanual)"; \
25+
if ! command -v gpg > /dev/null; then \
26+
apt-get update; \
27+
apt-get install -y --no-install-recommends \
28+
gnupg \
29+
dirmngr \
30+
; \
31+
rm -rf /var/lib/apt/lists/*; \
32+
fi; \
33+
\
34+
# https://julialang.org/downloads/#julia-command-line-version
35+
# https://julialang-s3.julialang.org/bin/checksums/julia-1.7.0-rc3.sha256
36+
# this "case" statement is generated via "update.sh"
37+
dpkgArch="$(dpkg --print-architecture)"; \
38+
case "${dpkgArch##*-}" in \
39+
# amd64
40+
amd64) tarArch='x86_64'; dirArch='x64'; sha256='cbf33c533d6f226161f08cdc3cec16745a3dc5afdfbaece95e3f2a5e0b6b7886' ;; \
41+
# arm32v7
42+
armhf) tarArch='armv7l'; dirArch='armv7l'; sha256='fff9370f58fd8f94f12a14d38c32d25b9e493d62a6d992edfc378caf9ef8d1cc' ;; \
43+
# arm64v8
44+
arm64) tarArch='aarch64'; dirArch='aarch64'; sha256='0662f9f31c87559ec33a24b3b83df85071357708287678ca78c7fa4498d05e5c' ;; \
45+
# i386
46+
i386) tarArch='i686'; dirArch='x86'; sha256='9ee7692faee05d7dbe431c59850542d95d260368bbf6d4f0ccdd03be07fef817' ;; \
47+
*) echo >&2 "error: current architecture ($dpkgArch) does not have a corresponding Julia binary release"; exit 1 ;; \
48+
esac; \
49+
\
50+
folder="$(echo "$JULIA_VERSION" | cut -d. -f1-2)"; \
51+
curl -fL -o julia.tar.gz.asc "https://julialang-s3.julialang.org/bin/linux/${dirArch}/${folder}/julia-${JULIA_VERSION}-linux-${tarArch}.tar.gz.asc"; \
52+
curl -fL -o julia.tar.gz "https://julialang-s3.julialang.org/bin/linux/${dirArch}/${folder}/julia-${JULIA_VERSION}-linux-${tarArch}.tar.gz"; \
53+
\
54+
echo "${sha256} *julia.tar.gz" | sha256sum -c -; \
55+
\
56+
export GNUPGHOME="$(mktemp -d)"; \
57+
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$JULIA_GPG"; \
58+
gpg --batch --verify julia.tar.gz.asc julia.tar.gz; \
59+
command -v gpgconf > /dev/null && gpgconf --kill all; \
60+
rm -rf "$GNUPGHOME" julia.tar.gz.asc; \
61+
\
62+
mkdir "$JULIA_PATH"; \
63+
tar -xzf julia.tar.gz -C "$JULIA_PATH" --strip-components 1; \
64+
rm julia.tar.gz; \
65+
\
66+
apt-mark auto '.*' > /dev/null; \
67+
[ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; \
68+
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
69+
\
70+
# smoke test
71+
julia --version
72+
73+
CMD ["julia"]

generate-stackbrew-library.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ set -Eeuo pipefail
44
declare -A aliases=(
55
[1.6]='1 latest'
66
)
7-
defaultDebianVariant='buster'
8-
defaultAlpineVariant='alpine3.14'
7+
defaultDebianVariant='bullseye'
8+
defaultAlpineVariant='alpine3.15'
99

1010
self="$(basename "$BASH_SOURCE")"
1111
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
@@ -89,8 +89,8 @@ join() {
8989

9090
for version in "${versions[@]}"; do
9191
for v in \
92-
{buster,stretch} \
93-
alpine{3.14,3.13} \
92+
{bullseye,buster} \
93+
alpine{3.15,3.14} \
9494
windows/windowsservercore-{ltsc2022,1809,ltsc2016} \
9595
; do
9696
dir="$version/$v"

update.sh

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,8 @@ for version in "${versions[@]}"; do
6868

6969
for v in \
7070
windows/windowsservercore-{ltsc2022,1809,ltsc2016} \
71-
alpine{3.14,3.13} \
72-
{stretch,buster} \
71+
alpine{3.15,3.14} \
72+
{bullseye,buster} \
7373
; do
7474
dir="$version/$v"
7575
variant="$(basename "$v")"
@@ -82,11 +82,6 @@ for version in "${versions[@]}"; do
8282
*) template='debian'; tag="${variant}-slim" ;;
8383
esac
8484

85-
if [ "$version" = '1.0' ] && [ "$template" = 'debian' ] && [ "$variant" = 'stretch' ]; then
86-
# 1.0-stretch needs to stay non-slim for backwards compatibility
87-
tag="$variant"
88-
fi
89-
9085
variantArchCase="$linuxArchCase"
9186
if [ "$template" = 'alpine' ]; then
9287
sha256="$(grep "julia-${fullVersion}-musl-x86_64.tar.gz$" <<<"$sha256s" | cut -d' ' -f1 || :)"

0 commit comments

Comments
 (0)