Commit a25958d8 authored by Eric Timmons's avatar Eric Timmons
Browse files

Add alpine3.14 and bullseye

parent 2f771cc2
Pipeline #4573 passed with stages
in 349 minutes and 35 seconds
#
# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
#
# PLEASE DO NOT EDIT IT DIRECTLY.
#
FROM alpine:3.14
ENV SBCL_VERSION 2.1.8
ENV SBCL_SIGNING_KEY D6839CA0A67F74D9DFB70922EBD595A9100D63CD
ENV DAEWOK_SIGNING_KEY 823DF61DEDB633B3DE7B2B7C181191EF9ACF6934
WORKDIR /usr/local/src/
# hadolint ignore=DL3003,DL3018
RUN set -x \
&& case "$(cat /etc/apk/arch)" in \
# We can't build --with-sb-prelink-linkage-table on armv7 because of
# how musl has implemented time64 support...
armv7) SBCL_ARCH=arm; SBCL_MAKE_ARGS="--with-sb-linkable-runtime";; \
aarch64) SBCL_ARCH=arm64; SBCL_MAKE_ARGS="--with-sb-linkable-runtime --with-sb-prelink-linkage-table";; \
x86_64) SBCL_ARCH=x86-64; SBCL_MAKE_ARGS="--with-sb-linkable-runtime --with-sb-prelink-linkage-table";; \
*) echo "Unknown arch" >&2; exit 1;; \
esac \
&& export SBCL_ARCH \
&& import_key() { \
gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$1"; \
} \
&& download_and_validate_hashes() { \
curl -fsSL "https://downloads.sourceforge.net/project/sbcl/sbcl/${1}/sbcl-${1}-crhodes.asc" > "sbcl-${1}-crhodes.asc" \
&& gpg --batch --verify "sbcl-${1}-crhodes.asc" \
&& gpg --batch --decrypt "sbcl-${1}-crhodes.asc" > "sbcl-${1}-crhodes.txt"; \
} \
&& download_source() { \
url="https://downloads.sourceforge.net/project/sbcl/sbcl/${1}/sbcl-${1}-source.tar.bz2" \
&& curl -fsSL "$url" > "sbcl-${1}-source.tar.bz2" \
&& bunzip2 "sbcl-${1}-source.tar.bz2" \
&& grep "sbcl-${1}-source.tar" "sbcl-${1}-crhodes.txt" > "${1}-sum-file.txt" \
&& sha256sum -c "${1}-sum-file.txt" \
&& tar xf "sbcl-${1}-source.tar"; \
} \
&& build_and_install_source() { \
cd "sbcl-${1}/" \
# Remove the hardcoding of armv5 as target arch. Use the default
# provided by the base image.
&& sed -i -e "s/CFLAGS += -marm -march=armv5/CFLAGS += -marm/" src/runtime/Config.arm-linux \
&& sh make.sh $SBCL_MAKE_ARGS \
&& sh install.sh \
&& cd /usr/local/src; \
} \
&& apk add --no-cache ca-certificates curl openssl make gcc musl-dev linux-headers gnupg patch \
&& apk add --no-cache sbcl --repository http://dl-3.alpinelinux.org/alpine/edge/community/ \
&& GNUPGHOME="$(mktemp -d)" \
&& export GNUPGHOME \
&& import_key "$SBCL_SIGNING_KEY" \
&& import_key "$DAEWOK_SIGNING_KEY" \
&& download_and_validate_hashes "$SBCL_VERSION" \
&& download_source "$SBCL_VERSION" \
&& curl -fsSL "https://www.timmons.dev/static/patches/sbcl/$SBCL_VERSION/static-executable-support-v2.patch" > static-executable-support.patch \
&& curl -fsSL "https://www.timmons.dev/static/patches/sbcl/$SBCL_VERSION/static-executable-support-v2.patch.asc" > static-executable-support.patch.asc \
&& gpg --batch --verify static-executable-support.patch.asc static-executable-support.patch \
&& (cd "sbcl-$SBCL_VERSION" && patch -p1 < ../static-executable-support.patch) \
&& rm static-executable-support.patch static-executable-support.patch.asc \
&& echo "\"$SBCL_VERSION-static-executable-v2\"" > sbcl-$SBCL_VERSION/version.lisp-expr \
&& build_and_install_source "$SBCL_VERSION" \
&& apk del --no-cache ca-certificates curl openssl make gcc musl-dev linux-headers gnupg sbcl patch \
&& pkill -9 gpg-agent \
&& pkill -9 dirmngr \
&& rm -rf "$GNUPGHOME" ./* \
&& sbcl --version
WORKDIR /
COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["sbcl"]
#!/bin/sh
# If the first arg starts with a hyphen, prepend sbcl to arguments.
if [ "${1#-}" != "$1" ]; then
set -- sbcl "$@"
fi
exec "$@"
#
# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
#
# PLEASE DO NOT EDIT IT DIRECTLY.
#
FROM buildpack-deps:bullseye
ENV SBCL_VERSION 2.1.8
ENV SBCL_SIGNING_KEY D6839CA0A67F74D9DFB70922EBD595A9100D63CD
ENV DAEWOK_SIGNING_KEY 823DF61DEDB633B3DE7B2B7C181191EF9ACF6934
WORKDIR /usr/local/src/
# hadolint ignore=DL3003,DL3008
RUN set -x \
&& case "$(dpkg --print-architecture)" in \
armhf) SBCL_ARCH=arm; SBCL_BINARY_ARCH_CODE=armhf; SBCL_BINARY_VERSION=1.4.11; SBCL_MAKE_ARGS="--with-sb-linkable-runtime --with-sb-prelink-linkage-table";; \
arm64) SBCL_ARCH=arm64; SBCL_BINARY_ARCH_CODE=arm64; SBCL_BINARY_VERSION=1.4.2; SBCL_MAKE_ARGS="--with-sb-linkable-runtime --with-sb-prelink-linkage-table";; \
# Limit to 1.5.5 because that's when the glibc version used to build
# was bumped
amd64) SBCL_ARCH=x86-64; SBCL_BINARY_ARCH_CODE=x86-64; SBCL_BINARY_VERSION=1.5.5; SBCL_MAKE_ARGS="--with-sb-linkable-runtime --with-sb-prelink-linkage-table";; \
*) echo "Unknown arch" >&2; exit 1;; \
esac \
&& export SBCL_ARCH \
&& export SBCL_BINARY_ARCH_CODE \
&& export SBCL_BINARY_VERSION \
&& download_and_validate_hashes() { \
curl -fsSL "https://downloads.sourceforge.net/project/sbcl/sbcl/${1}/sbcl-${1}-crhodes.asc" > "sbcl-${1}-crhodes.asc" \
&& gpg --batch --verify "sbcl-${1}-crhodes.asc" \
&& gpg --batch --decrypt "sbcl-${1}-crhodes.asc" > "sbcl-${1}-crhodes.txt"; \
} \
&& download_and_unpack_binary() { \
url="https://downloads.sourceforge.net/project/sbcl/sbcl/${1}/sbcl-${1}-$SBCL_BINARY_ARCH_CODE-linux-binary.tar.bz2" \
&& curl -fsSL "$url" > "sbcl-${1}-$SBCL_BINARY_ARCH_CODE-linux-binary.tar.bz2" \
&& bunzip2 "sbcl-${1}-$SBCL_BINARY_ARCH_CODE-linux-binary.tar.bz2" \
&& if grep "sbcl-${1}-$SBCL_BINARY_ARCH_CODE-linux-binary.tar" "sbcl-${1}-crhodes.txt" > "${1}-sum-file.txt"; then sha256sum -c "${1}-sum-file.txt"; fi \
&& tar xf "sbcl-${1}-$SBCL_BINARY_ARCH_CODE-linux-binary.tar" \
&& rm -rf "sbcl-${1}-$SBCL_BINARY_ARCH_CODE-linux-binary.tar"; \
} \
&& download_source() { \
url="https://downloads.sourceforge.net/project/sbcl/sbcl/${1}/sbcl-${1}-source.tar.bz2" \
&& curl -fsSL "$url" > "sbcl-${1}-source.tar.bz2" \
&& bunzip2 "sbcl-${1}-source.tar.bz2" \
&& grep "sbcl-${1}-source.tar" "sbcl-${1}-crhodes.txt" > "${1}-sum-file.txt" \
&& sha256sum -c "${1}-sum-file.txt" \
&& tar xf "sbcl-${1}-source.tar" \
&& mv "sbcl-$1" "sbcl"; \
} \
&& build_and_install_source() { \
cd "sbcl/" \
# Remove the hardcoding of armv5 as target arch. Use the default
# provided by the base image.
&& sed -i -e "s/CFLAGS += -marm -march=armv5/CFLAGS += -marm/" src/runtime/Config.arm-linux \
&& sh make.sh "--xc-host=${1}" --fancy $SBCL_MAKE_ARGS \
&& sh install.sh \
&& sh clean.sh \
&& cd /usr/local/src; \
} \
&& GNUPGHOME="$(mktemp -d)" \
&& export GNUPGHOME \
&& gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys ${SBCL_SIGNING_KEY} \
&& gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys ${DAEWOK_SIGNING_KEY} \
&& download_and_validate_hashes "$SBCL_BINARY_VERSION" \
&& download_and_validate_hashes "$SBCL_VERSION" \
&& download_and_unpack_binary "$SBCL_BINARY_VERSION" \
&& download_source "$SBCL_VERSION" \
&& curl -fsSL "https://www.timmons.dev/static/patches/sbcl/$SBCL_VERSION/static-executable-support-v2.patch" > static-executable-support.patch \
&& curl -fsSL "https://www.timmons.dev/static/patches/sbcl/$SBCL_VERSION/static-executable-support-v2.patch.asc" > static-executable-support.patch.asc \
&& gpg --batch --verify static-executable-support.patch.asc static-executable-support.patch \
&& (cd "sbcl" && patch -p1 < ../static-executable-support.patch) \
&& rm static-executable-support.patch static-executable-support.patch.asc \
&& echo "\"$SBCL_VERSION-static-executable-v2\"" > sbcl/version.lisp-expr \
&& build_and_install_source "/usr/local/src/sbcl-${SBCL_BINARY_VERSION}-$SBCL_BINARY_ARCH_CODE-linux/run-sbcl.sh" \
&& rm -rf "$GNUPGHOME" "$SBCL_BINARY_VERSION-sum-file.txt" "$SBCL_VERSION-sum-file.txt" "sbcl-$SBCL_BINARY_VERSION-crhodes."* "sbcl-$SBCL_VERSION-crhodes."* "sbcl-$SBCL_VERSION-source.tar" "sbcl-$SBCL_BINARY_VERSION-$SBCL_BINARY_ARCH_CODE-linux" \
&& sbcl --version
# Add the Quicklisp installer.
WORKDIR /usr/local/share/common-lisp/source/quicklisp/
ENV QUICKLISP_SIGNING_KEY D7A3489DDEFE32B7D0E7CC61307965AB028B5FF7
RUN set -x \
&& curl -fsSL "https://beta.quicklisp.org/quicklisp.lisp" > quicklisp.lisp \
&& curl -fsSL "https://beta.quicklisp.org/quicklisp.lisp.asc" > quicklisp.lisp.asc \
&& GNUPGHOME="$(mktemp -d)" \
&& export GNUPGHOME \
&& gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "${QUICKLISP_SIGNING_KEY}" \
&& gpg --batch --verify "quicklisp.lisp.asc" "quicklisp.lisp" \
&& rm quicklisp.lisp.asc \
&& rm -rf "$GNUPGHOME"
# Add the script to trivially install Quicklisp
COPY install-quicklisp /usr/local/bin/install-quicklisp
# Install cl-launch. In the next release, move this up so that all images can
# share it.
# hadolint ignore=DL3008
RUN set -x \
&& apt-get update \
&& apt-get install --no-install-recommends -y cl-launch \
&& rm -rf /var/lib/apt/lists/*
# Add the entrypoint
WORKDIR /
COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["sbcl"]
#!/bin/sh
# If the first arg starts with a hyphen, prepend sbcl to arguments.
if [ "${1#-}" != "$1" ]; then
set -- sbcl "$@"
fi
exec "$@"
#!/bin/sh
if [ -z "$QUICKLISP_DIST_VERSION" ] || [ "$QUICKLISP_DIST_VERSION" = "latest" ]; then
QUICKLISP_DIST_VERSION=nil
else
QUICKLISP_DIST_VERSION="\"quicklisp/$QUICKLISP_DIST_VERSION\""
fi
if [ -z "$QUICKLISP_CLIENT_VERSION" ] || [ "$QUICKLISP_CLIENT_VERSION" = "latest" ]; then
QUICKLISP_CLIENT_VERSION=nil
else
QUICKLISP_CLIENT_VERSION="\"$QUICKLISP_CLIENT_VERSION\""
fi
sbcl --non-interactive \
--load /usr/local/share/common-lisp/source/quicklisp/quicklisp.lisp \
--eval "(quicklisp-quickstart:install :dist-version $QUICKLISP_DIST_VERSION :client-version $QUICKLISP_CLIENT_VERSION)" \
--eval "(when (equalp \"$QUICKLISP_ADD_TO_INIT_FILE\" \"true\") (ql-util:without-prompting (ql:add-to-init-file)))"
......@@ -5,7 +5,7 @@ declare -A aliases=(
[2.1.8]='latest'
)
defaultDebianSuite='buster'
defaultDebianSuite='bullseye'
self="$(basename "$BASH_SOURCE")"
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
......@@ -41,6 +41,7 @@ dirCommit() {
declare -g -A parentRepoToArches=(
[alpine:3.13]="amd64 arm32v6 arm32v7 arm64v8 i386 ppc64le s390x"
[alpine:3.14]="amd64 arm32v6 arm32v7 arm64v8 i386 ppc64le s390x"
[buildpack-deps:bullseye]="amd64 arm32v6 arm32v7 arm64v8 i386 ppc64le s390x"
[buildpack-deps:buster]="amd64 arm32v6 arm32v7 arm64v8 i386 ppc64le s390x"
[buildpack-deps:stretch]="amd64 arm32v6 arm32v7 arm64v8 i386 ppc64le s390x"
[debian:buster]="amd64 arm32v6 arm32v7 arm64v8 i386 ppc64le s390x"
......@@ -64,7 +65,9 @@ for version in "${versions[@]}"; do
for v in \
buster/ \
bullseye/ \
alpine3.13/ \
alpine3.14/ \
; do
os="${v%%/*}"
variant="${v#*/}"
......
......@@ -37,7 +37,9 @@ for version in "${versions[@]}"; do
for v in \
buster/ \
bullseye/ \
alpine3.13/ \
alpine3.14/ \
; do
os="${v%%/*}"
variant="${v#*/}"
......@@ -50,7 +52,7 @@ for version in "${versions[@]}"; do
mkdir -p "$dir"
case "$os" in
buster|stretch)
bullseye|buster|stretch)
template="apt"
if [ "$variant" = "slim" ]; then
from="debian:$os"
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment