Bullseye and Alpine 3.15
This commit is contained in:
parent
ba50b9ecbb
commit
60d6e4fe76
|
|
@ -1,4 +1,4 @@
|
||||||
FROM debian:stretch
|
FROM debian:bullseye-slim
|
||||||
|
|
||||||
RUN set -eux; \
|
RUN set -eux; \
|
||||||
apt-get update; \
|
apt-get update; \
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
FROM alpine:3.13
|
FROM alpine:3.15
|
||||||
|
|
||||||
ENV JULIA_PATH /usr/local/julia
|
ENV JULIA_PATH /usr/local/julia
|
||||||
ENV PATH $JULIA_PATH/bin:$PATH
|
ENV PATH $JULIA_PATH/bin:$PATH
|
||||||
|
|
@ -0,0 +1,73 @@
|
||||||
|
FROM debian:bullseye-slim
|
||||||
|
|
||||||
|
RUN set -eux; \
|
||||||
|
apt-get update; \
|
||||||
|
apt-get install -y --no-install-recommends \
|
||||||
|
ca-certificates \
|
||||||
|
# ERROR: no download agent available; install curl, wget, or fetch
|
||||||
|
curl \
|
||||||
|
; \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
ENV JULIA_PATH /usr/local/julia
|
||||||
|
ENV PATH $JULIA_PATH/bin:$PATH
|
||||||
|
|
||||||
|
# https://julialang.org/juliareleases.asc
|
||||||
|
# Julia (Binary signing key) <buildbot@julialang.org>
|
||||||
|
ENV JULIA_GPG 3673DF529D9049477F76B37566E3C7DC03D6E495
|
||||||
|
|
||||||
|
# https://julialang.org/downloads/
|
||||||
|
ENV JULIA_VERSION 1.6.4
|
||||||
|
|
||||||
|
RUN set -eux; \
|
||||||
|
\
|
||||||
|
savedAptMark="$(apt-mark showmanual)"; \
|
||||||
|
if ! command -v gpg > /dev/null; then \
|
||||||
|
apt-get update; \
|
||||||
|
apt-get install -y --no-install-recommends \
|
||||||
|
gnupg \
|
||||||
|
dirmngr \
|
||||||
|
; \
|
||||||
|
rm -rf /var/lib/apt/lists/*; \
|
||||||
|
fi; \
|
||||||
|
\
|
||||||
|
# https://julialang.org/downloads/#julia-command-line-version
|
||||||
|
# https://julialang-s3.julialang.org/bin/checksums/julia-1.6.4.sha256
|
||||||
|
# this "case" statement is generated via "update.sh"
|
||||||
|
dpkgArch="$(dpkg --print-architecture)"; \
|
||||||
|
case "${dpkgArch##*-}" in \
|
||||||
|
# amd64
|
||||||
|
amd64) tarArch='x86_64'; dirArch='x64'; sha256='52244ae47697e8073dfbc9d1251b0422f0dbd1fbe1a41da4b9f7ddf0506b2132' ;; \
|
||||||
|
# arm32v7
|
||||||
|
armhf) tarArch='armv7l'; dirArch='armv7l'; sha256='9ad3f6bd71eb6840d4cef1569855da20c0b4931a2bdf77703a64df672b0702a1' ;; \
|
||||||
|
# arm64v8
|
||||||
|
arm64) tarArch='aarch64'; dirArch='aarch64'; sha256='072daac7229c15fa41d0c1b65b8a3d6ee747323d02f5943da3846b075291b48b' ;; \
|
||||||
|
# i386
|
||||||
|
i386) tarArch='i686'; dirArch='x86'; sha256='9d43d642174cf22cf0fde18dc2578c84f357d2c619b9d846d3a6da4192ba48cf' ;; \
|
||||||
|
*) echo >&2 "error: current architecture ($dpkgArch) does not have a corresponding Julia binary release"; exit 1 ;; \
|
||||||
|
esac; \
|
||||||
|
\
|
||||||
|
folder="$(echo "$JULIA_VERSION" | cut -d. -f1-2)"; \
|
||||||
|
curl -fL -o julia.tar.gz.asc "https://julialang-s3.julialang.org/bin/linux/${dirArch}/${folder}/julia-${JULIA_VERSION}-linux-${tarArch}.tar.gz.asc"; \
|
||||||
|
curl -fL -o julia.tar.gz "https://julialang-s3.julialang.org/bin/linux/${dirArch}/${folder}/julia-${JULIA_VERSION}-linux-${tarArch}.tar.gz"; \
|
||||||
|
\
|
||||||
|
echo "${sha256} *julia.tar.gz" | sha256sum -c -; \
|
||||||
|
\
|
||||||
|
export GNUPGHOME="$(mktemp -d)"; \
|
||||||
|
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$JULIA_GPG"; \
|
||||||
|
gpg --batch --verify julia.tar.gz.asc julia.tar.gz; \
|
||||||
|
command -v gpgconf > /dev/null && gpgconf --kill all; \
|
||||||
|
rm -rf "$GNUPGHOME" julia.tar.gz.asc; \
|
||||||
|
\
|
||||||
|
mkdir "$JULIA_PATH"; \
|
||||||
|
tar -xzf julia.tar.gz -C "$JULIA_PATH" --strip-components 1; \
|
||||||
|
rm julia.tar.gz; \
|
||||||
|
\
|
||||||
|
apt-mark auto '.*' > /dev/null; \
|
||||||
|
[ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; \
|
||||||
|
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
|
||||||
|
\
|
||||||
|
# smoke test
|
||||||
|
julia --version
|
||||||
|
|
||||||
|
CMD ["julia"]
|
||||||
|
|
@ -0,0 +1,48 @@
|
||||||
|
FROM alpine:3.15
|
||||||
|
|
||||||
|
ENV JULIA_PATH /usr/local/julia
|
||||||
|
ENV PATH $JULIA_PATH/bin:$PATH
|
||||||
|
|
||||||
|
# https://julialang.org/juliareleases.asc
|
||||||
|
# Julia (Binary signing key) <buildbot@julialang.org>
|
||||||
|
ENV JULIA_GPG 3673DF529D9049477F76B37566E3C7DC03D6E495
|
||||||
|
|
||||||
|
# https://julialang.org/downloads/
|
||||||
|
ENV JULIA_VERSION 1.7.0-rc3
|
||||||
|
|
||||||
|
RUN set -eux; \
|
||||||
|
\
|
||||||
|
apk add --no-cache --virtual .fetch-deps gnupg; \
|
||||||
|
\
|
||||||
|
# https://julialang.org/downloads/#julia-command-line-version
|
||||||
|
# https://julialang-s3.julialang.org/bin/checksums/julia-1.7.0-rc3.sha256
|
||||||
|
# this "case" statement is generated via "update.sh"
|
||||||
|
apkArch="$(apk --print-arch)"; \
|
||||||
|
case "$apkArch" in \
|
||||||
|
# amd64
|
||||||
|
x86_64) tarArch='x86_64'; dirArch='x64'; sha256='68dc3d7b17fbcceea383b48d82c63c36b899e05f5cd7537a730d7578f65c40ea' ;; \
|
||||||
|
*) echo >&2 "error: current architecture ($apkArch) does not have a corresponding Julia binary release"; exit 1 ;; \
|
||||||
|
esac; \
|
||||||
|
\
|
||||||
|
folder="$(echo "$JULIA_VERSION" | cut -d. -f1-2)"; \
|
||||||
|
wget -O julia.tar.gz.asc "https://julialang-s3.julialang.org/bin/musl/${dirArch}/${folder}/julia-${JULIA_VERSION}-musl-${tarArch}.tar.gz.asc"; \
|
||||||
|
wget -O julia.tar.gz "https://julialang-s3.julialang.org/bin/musl/${dirArch}/${folder}/julia-${JULIA_VERSION}-musl-${tarArch}.tar.gz"; \
|
||||||
|
\
|
||||||
|
echo "${sha256} *julia.tar.gz" | sha256sum -c -; \
|
||||||
|
\
|
||||||
|
export GNUPGHOME="$(mktemp -d)"; \
|
||||||
|
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$JULIA_GPG"; \
|
||||||
|
gpg --batch --verify julia.tar.gz.asc julia.tar.gz; \
|
||||||
|
command -v gpgconf > /dev/null && gpgconf --kill all; \
|
||||||
|
rm -rf "$GNUPGHOME" julia.tar.gz.asc; \
|
||||||
|
\
|
||||||
|
mkdir "$JULIA_PATH"; \
|
||||||
|
tar -xzf julia.tar.gz -C "$JULIA_PATH" --strip-components 1; \
|
||||||
|
rm julia.tar.gz; \
|
||||||
|
\
|
||||||
|
apk del --no-network .fetch-deps; \
|
||||||
|
\
|
||||||
|
# smoke test
|
||||||
|
julia --version
|
||||||
|
|
||||||
|
CMD ["julia"]
|
||||||
|
|
@ -0,0 +1,73 @@
|
||||||
|
FROM debian:bullseye-slim
|
||||||
|
|
||||||
|
RUN set -eux; \
|
||||||
|
apt-get update; \
|
||||||
|
apt-get install -y --no-install-recommends \
|
||||||
|
ca-certificates \
|
||||||
|
# ERROR: no download agent available; install curl, wget, or fetch
|
||||||
|
curl \
|
||||||
|
; \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
ENV JULIA_PATH /usr/local/julia
|
||||||
|
ENV PATH $JULIA_PATH/bin:$PATH
|
||||||
|
|
||||||
|
# https://julialang.org/juliareleases.asc
|
||||||
|
# Julia (Binary signing key) <buildbot@julialang.org>
|
||||||
|
ENV JULIA_GPG 3673DF529D9049477F76B37566E3C7DC03D6E495
|
||||||
|
|
||||||
|
# https://julialang.org/downloads/
|
||||||
|
ENV JULIA_VERSION 1.7.0-rc3
|
||||||
|
|
||||||
|
RUN set -eux; \
|
||||||
|
\
|
||||||
|
savedAptMark="$(apt-mark showmanual)"; \
|
||||||
|
if ! command -v gpg > /dev/null; then \
|
||||||
|
apt-get update; \
|
||||||
|
apt-get install -y --no-install-recommends \
|
||||||
|
gnupg \
|
||||||
|
dirmngr \
|
||||||
|
; \
|
||||||
|
rm -rf /var/lib/apt/lists/*; \
|
||||||
|
fi; \
|
||||||
|
\
|
||||||
|
# https://julialang.org/downloads/#julia-command-line-version
|
||||||
|
# https://julialang-s3.julialang.org/bin/checksums/julia-1.7.0-rc3.sha256
|
||||||
|
# this "case" statement is generated via "update.sh"
|
||||||
|
dpkgArch="$(dpkg --print-architecture)"; \
|
||||||
|
case "${dpkgArch##*-}" in \
|
||||||
|
# amd64
|
||||||
|
amd64) tarArch='x86_64'; dirArch='x64'; sha256='cbf33c533d6f226161f08cdc3cec16745a3dc5afdfbaece95e3f2a5e0b6b7886' ;; \
|
||||||
|
# arm32v7
|
||||||
|
armhf) tarArch='armv7l'; dirArch='armv7l'; sha256='fff9370f58fd8f94f12a14d38c32d25b9e493d62a6d992edfc378caf9ef8d1cc' ;; \
|
||||||
|
# arm64v8
|
||||||
|
arm64) tarArch='aarch64'; dirArch='aarch64'; sha256='0662f9f31c87559ec33a24b3b83df85071357708287678ca78c7fa4498d05e5c' ;; \
|
||||||
|
# i386
|
||||||
|
i386) tarArch='i686'; dirArch='x86'; sha256='9ee7692faee05d7dbe431c59850542d95d260368bbf6d4f0ccdd03be07fef817' ;; \
|
||||||
|
*) echo >&2 "error: current architecture ($dpkgArch) does not have a corresponding Julia binary release"; exit 1 ;; \
|
||||||
|
esac; \
|
||||||
|
\
|
||||||
|
folder="$(echo "$JULIA_VERSION" | cut -d. -f1-2)"; \
|
||||||
|
curl -fL -o julia.tar.gz.asc "https://julialang-s3.julialang.org/bin/linux/${dirArch}/${folder}/julia-${JULIA_VERSION}-linux-${tarArch}.tar.gz.asc"; \
|
||||||
|
curl -fL -o julia.tar.gz "https://julialang-s3.julialang.org/bin/linux/${dirArch}/${folder}/julia-${JULIA_VERSION}-linux-${tarArch}.tar.gz"; \
|
||||||
|
\
|
||||||
|
echo "${sha256} *julia.tar.gz" | sha256sum -c -; \
|
||||||
|
\
|
||||||
|
export GNUPGHOME="$(mktemp -d)"; \
|
||||||
|
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$JULIA_GPG"; \
|
||||||
|
gpg --batch --verify julia.tar.gz.asc julia.tar.gz; \
|
||||||
|
command -v gpgconf > /dev/null && gpgconf --kill all; \
|
||||||
|
rm -rf "$GNUPGHOME" julia.tar.gz.asc; \
|
||||||
|
\
|
||||||
|
mkdir "$JULIA_PATH"; \
|
||||||
|
tar -xzf julia.tar.gz -C "$JULIA_PATH" --strip-components 1; \
|
||||||
|
rm julia.tar.gz; \
|
||||||
|
\
|
||||||
|
apt-mark auto '.*' > /dev/null; \
|
||||||
|
[ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; \
|
||||||
|
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
|
||||||
|
\
|
||||||
|
# smoke test
|
||||||
|
julia --version
|
||||||
|
|
||||||
|
CMD ["julia"]
|
||||||
|
|
@ -4,8 +4,8 @@ set -Eeuo pipefail
|
||||||
declare -A aliases=(
|
declare -A aliases=(
|
||||||
[1.6]='1 latest'
|
[1.6]='1 latest'
|
||||||
)
|
)
|
||||||
defaultDebianVariant='buster'
|
defaultDebianVariant='bullseye'
|
||||||
defaultAlpineVariant='alpine3.14'
|
defaultAlpineVariant='alpine3.15'
|
||||||
|
|
||||||
self="$(basename "$BASH_SOURCE")"
|
self="$(basename "$BASH_SOURCE")"
|
||||||
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
|
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
|
||||||
|
|
@ -89,8 +89,8 @@ join() {
|
||||||
|
|
||||||
for version in "${versions[@]}"; do
|
for version in "${versions[@]}"; do
|
||||||
for v in \
|
for v in \
|
||||||
{buster,stretch} \
|
{bullseye,buster} \
|
||||||
alpine{3.14,3.13} \
|
alpine{3.15,3.14} \
|
||||||
windows/windowsservercore-{ltsc2022,1809,ltsc2016} \
|
windows/windowsservercore-{ltsc2022,1809,ltsc2016} \
|
||||||
; do
|
; do
|
||||||
dir="$version/$v"
|
dir="$version/$v"
|
||||||
|
|
|
||||||
|
|
@ -68,8 +68,8 @@ for version in "${versions[@]}"; do
|
||||||
|
|
||||||
for v in \
|
for v in \
|
||||||
windows/windowsservercore-{ltsc2022,1809,ltsc2016} \
|
windows/windowsservercore-{ltsc2022,1809,ltsc2016} \
|
||||||
alpine{3.14,3.13} \
|
alpine{3.15,3.14} \
|
||||||
{stretch,buster} \
|
{bullseye,buster} \
|
||||||
; do
|
; do
|
||||||
dir="$version/$v"
|
dir="$version/$v"
|
||||||
variant="$(basename "$v")"
|
variant="$(basename "$v")"
|
||||||
|
|
@ -82,11 +82,6 @@ for version in "${versions[@]}"; do
|
||||||
*) template='debian'; tag="${variant}-slim" ;;
|
*) template='debian'; tag="${variant}-slim" ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
if [ "$version" = '1.0' ] && [ "$template" = 'debian' ] && [ "$variant" = 'stretch' ]; then
|
|
||||||
# 1.0-stretch needs to stay non-slim for backwards compatibility
|
|
||||||
tag="$variant"
|
|
||||||
fi
|
|
||||||
|
|
||||||
variantArchCase="$linuxArchCase"
|
variantArchCase="$linuxArchCase"
|
||||||
if [ "$template" = 'alpine' ]; then
|
if [ "$template" = 'alpine' ]; then
|
||||||
sha256="$(grep "julia-${fullVersion}-musl-x86_64.tar.gz$" <<<"$sha256s" | cut -d' ' -f1 || :)"
|
sha256="$(grep "julia-${fullVersion}-musl-x86_64.tar.gz$" <<<"$sha256s" | cut -d' ' -f1 || :)"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue