diff --git a/1.7.1/buster/jdk-15/Dockerfile b/1.7.1/bullseye/jdk-11/Dockerfile
similarity index 91%
rename from 1.7.1/buster/jdk-15/Dockerfile
rename to 1.7.1/bullseye/jdk-11/Dockerfile
index 266267864ba4b8ad6da8367c19e61019c3be6dc5..53ee96b143eb575f282f1e4fdcaa89a5cbaf1ec1 100644
--- a/1.7.1/buster/jdk-15/Dockerfile
+++ b/1.7.1/bullseye/jdk-11/Dockerfile
@@ -3,7 +3,7 @@
 #
 # PLEASE DO NOT EDIT IT DIRECTLY.
 #
-FROM openjdk:15-jdk-buster
+FROM openjdk:11-jdk-bullseye
 
 # Install the packages that buildpack-deps adds on top of
 # buildpack-deps:scm. This is a bit odd for a JVM based image, but the CFFI
@@ -61,10 +61,10 @@ RUN set -ex; \
 # Install Maven as it is commonly used with ABCL, including with anything that
 # uses CFFI. We install it ourselves instead of basing the image off of maven
 # because the maven image only follows openjdk's default OS choice and does not
-# provide buster based images for jdk12+.
+# provide Debian based images for jdk12+.
 
-ARG MAVEN_VERSION=3.6.3
-ARG MAVEN_SHA=c35a1803a6e70a126e80b2b3ae33eed961f83ed74d18fcd16909b2d44d7dada3203f1ffe726c17ef8dcca2dcaa9fca676987befeadc9b9f759967a8cb77181c0
+ARG MAVEN_VERSION=3.8.2
+ARG MAVEN_SHA=b0bf39460348b2d8eae1c861ced6c3e8a077b6e761fb3d4669be5de09490521a74db294cf031b0775b2dfcd57bd82246e42ce10904063ef8e3806222e686f222
 
 WORKDIR /usr/share/maven
 
@@ -91,7 +91,7 @@ RUN set -x \
     && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-src-${ABCL_VERSION}.tar.gz.asc" > "abcl-src-${ABCL_VERSION}.tar.gz.asc" \
     && GNUPGHOME="$(mktemp -d)" \
     && export GNUPGHOME \
-    && gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "${ABCL_SIGNING_KEY}" \
+    && gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "${ABCL_SIGNING_KEY}" \
     && gpg --batch --verify "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar.gz" \
     && gpg --batch --verify "abcl-src-${ABCL_VERSION}.tar.gz.asc" "abcl-src-${ABCL_VERSION}.tar.gz" \
     && gunzip "abcl-bin-${ABCL_VERSION}.tar.gz" \
@@ -114,7 +114,7 @@ RUN set -x \
     && 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 --keyserver keyserver.ubuntu.com --recv-keys "${QUICKLISP_SIGNING_KEY}" \
     && gpg --batch --verify "quicklisp.lisp.asc" "quicklisp.lisp" \
     && rm quicklisp.lisp.asc \
     && rm -rf "$GNUPGHOME"
diff --git a/1.7.1/buster/jdk-15/abcl-wrapper b/1.7.1/bullseye/jdk-11/abcl-wrapper
similarity index 100%
rename from 1.7.1/buster/jdk-15/abcl-wrapper
rename to 1.7.1/bullseye/jdk-11/abcl-wrapper
diff --git a/1.7.1/buster/jdk-15/docker-entrypoint.sh b/1.7.1/bullseye/jdk-11/docker-entrypoint.sh
similarity index 100%
rename from 1.7.1/buster/jdk-15/docker-entrypoint.sh
rename to 1.7.1/bullseye/jdk-11/docker-entrypoint.sh
diff --git a/1.7.1/buster/jdk-15/install-quicklisp b/1.7.1/bullseye/jdk-11/install-quicklisp
similarity index 100%
rename from 1.7.1/buster/jdk-15/install-quicklisp
rename to 1.7.1/bullseye/jdk-11/install-quicklisp
diff --git a/1.7.1/buster/jdk-15/slim/Dockerfile b/1.7.1/bullseye/jdk-11/slim/Dockerfile
similarity index 92%
rename from 1.7.1/buster/jdk-15/slim/Dockerfile
rename to 1.7.1/bullseye/jdk-11/slim/Dockerfile
index 3b4b4d50596d5cf81785fae4f66f4003053ef10d..800a8f45e4102a4dfc4f7f7f573e165163f101aa 100644
--- a/1.7.1/buster/jdk-15/slim/Dockerfile
+++ b/1.7.1/bullseye/jdk-11/slim/Dockerfile
@@ -3,7 +3,7 @@
 #
 # PLEASE DO NOT EDIT IT DIRECTLY.
 #
-FROM openjdk:15-jdk-slim-buster
+FROM openjdk:11-jdk-slim-bullseye
 
 ENV ABCL_VERSION 1.7.1
 
@@ -19,7 +19,7 @@ RUN set -x \
     && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz.asc" > "abcl-bin-${ABCL_VERSION}.tar.gz.asc" \
     && GNUPGHOME="$(mktemp -d)" \
     && export GNUPGHOME \
-    && gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "${ABCL_SIGNING_KEY}" \
+    && gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "${ABCL_SIGNING_KEY}" \
     && gpg --batch --verify "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar.gz" \
     && gunzip "abcl-bin-${ABCL_VERSION}.tar.gz" \
     && tar xf "abcl-bin-${ABCL_VERSION}.tar" \
diff --git a/1.7.1/buster/jdk-15/slim/abcl-wrapper b/1.7.1/bullseye/jdk-11/slim/abcl-wrapper
similarity index 100%
rename from 1.7.1/buster/jdk-15/slim/abcl-wrapper
rename to 1.7.1/bullseye/jdk-11/slim/abcl-wrapper
diff --git a/1.7.1/buster/jdk-15/slim/docker-entrypoint.sh b/1.7.1/bullseye/jdk-11/slim/docker-entrypoint.sh
similarity index 100%
rename from 1.7.1/buster/jdk-15/slim/docker-entrypoint.sh
rename to 1.7.1/bullseye/jdk-11/slim/docker-entrypoint.sh
diff --git a/1.7.1/bullseye/jdk-16/Dockerfile b/1.7.1/bullseye/jdk-16/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..bd63fdfec9e486cae3f7cfded34521f319d29cc9
--- /dev/null
+++ b/1.7.1/bullseye/jdk-16/Dockerfile
@@ -0,0 +1,141 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+FROM openjdk:16-jdk-bullseye
+
+# Install the packages that buildpack-deps adds on top of
+# buildpack-deps:scm. This is a bit odd for a JVM based image, but the CFFI
+# project is commonly used and requires a compiler, headers, etc. Additionally,
+# this gives a more uniform experience between the different cl-docker-images
+# project's images.
+RUN set -ex; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        autoconf \
+        automake \
+        bzip2 \
+        default-libmysqlclient-dev \
+        dpkg-dev \
+        file \
+        g++ \
+        gcc \
+        imagemagick \
+        libbz2-dev \
+        libc6-dev \
+        libcurl4-openssl-dev \
+        libdb-dev \
+        libevent-dev \
+        libffi-dev \
+        libgdbm-dev \
+        libglib2.0-dev \
+        libgmp-dev \
+        libjpeg-dev \
+        libkrb5-dev \
+        liblzma-dev \
+        libmagickcore-dev \
+        libmagickwand-dev \
+        libmaxminddb-dev \
+        libncurses5-dev \
+        libncursesw5-dev \
+        libpng-dev \
+        libpq-dev \
+        libreadline-dev \
+        libsqlite3-dev \
+        libssl-dev \
+        libtool \
+        libwebp-dev \
+        libxml2-dev \
+        libxslt-dev \
+        libyaml-dev \
+        make \
+        patch \
+        unzip \
+        xz-utils \
+        zlib1g-dev \
+        \
+    ; \
+    rm -rf /var/lib/apt/lists/*
+
+# Install Maven as it is commonly used with ABCL, including with anything that
+# uses CFFI. We install it ourselves instead of basing the image off of maven
+# because the maven image only follows openjdk's default OS choice and does not
+# provide Debian based images for jdk12+.
+
+ARG MAVEN_VERSION=3.8.2
+ARG MAVEN_SHA=b0bf39460348b2d8eae1c861ced6c3e8a077b6e761fb3d4669be5de09490521a74db294cf031b0775b2dfcd57bd82246e42ce10904063ef8e3806222e686f222
+
+WORKDIR /usr/share/maven
+
+RUN curl -fsSL https://apache.osuosl.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz > /tmp/apache-maven.tar.gz \
+  && echo "${MAVEN_SHA}  /tmp/apache-maven.tar.gz" | sha512sum -c - \
+  && tar -xzf /tmp/apache-maven.tar.gz --strip-components=1 \
+  && rm -f /tmp/apache-maven.tar.gz \
+  && ln -s /usr/share/maven/bin/mvn /usr/bin/mvn
+
+ENV MAVEN_HOME /usr/share/maven
+
+# Now install ABCL
+
+ENV ABCL_VERSION 1.7.1
+
+WORKDIR /usr/local/share/
+
+ENV ABCL_SIGNING_KEY 5491D207FF9ECDE0BEA277772A9641104DB1773D
+
+RUN set -x \
+    && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz" > "abcl-bin-${ABCL_VERSION}.tar.gz" \
+    && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz.asc" > "abcl-bin-${ABCL_VERSION}.tar.gz.asc" \
+    && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-src-${ABCL_VERSION}.tar.gz" > "abcl-src-${ABCL_VERSION}.tar.gz" \
+    && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-src-${ABCL_VERSION}.tar.gz.asc" > "abcl-src-${ABCL_VERSION}.tar.gz.asc" \
+    && GNUPGHOME="$(mktemp -d)" \
+    && export GNUPGHOME \
+    && gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "${ABCL_SIGNING_KEY}" \
+    && gpg --batch --verify "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar.gz" \
+    && gpg --batch --verify "abcl-src-${ABCL_VERSION}.tar.gz.asc" "abcl-src-${ABCL_VERSION}.tar.gz" \
+    && gunzip "abcl-bin-${ABCL_VERSION}.tar.gz" \
+    && tar xf "abcl-bin-${ABCL_VERSION}.tar" \
+    && gunzip "abcl-src-${ABCL_VERSION}.tar.gz" \
+    && tar xf "abcl-src-${ABCL_VERSION}.tar" \
+    && mv "abcl-bin-${ABCL_VERSION}" abcl \
+    && mkdir -p /usr/local/src \
+    && mv "abcl-src-${ABCL_VERSION}" /usr/local/src/abcl/ \
+    && rm -rf "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar" "abcl-src-${ABCL_VERSION}.tar.gz.asc" "abcl-src-${ABCL_VERSION}.tar" "$GNUPGHOME" \
+    && java -jar /usr/local/share/abcl/abcl.jar --batch --eval '(print (multiple-value-list (lisp-implementation-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 keyserver.ubuntu.com --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 abcl-wrapper /usr/local/bin/abcl
+COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
+
+ENTRYPOINT ["docker-entrypoint.sh"]
+
+CMD ["abcl"]
diff --git a/1.8.0/buster/jdk-15/abcl-wrapper b/1.7.1/bullseye/jdk-16/abcl-wrapper
similarity index 100%
rename from 1.8.0/buster/jdk-15/abcl-wrapper
rename to 1.7.1/bullseye/jdk-16/abcl-wrapper
diff --git a/1.8.0/buster/jdk-15/docker-entrypoint.sh b/1.7.1/bullseye/jdk-16/docker-entrypoint.sh
similarity index 100%
rename from 1.8.0/buster/jdk-15/docker-entrypoint.sh
rename to 1.7.1/bullseye/jdk-16/docker-entrypoint.sh
diff --git a/1.8.0/buster/jdk-15/install-quicklisp b/1.7.1/bullseye/jdk-16/install-quicklisp
similarity index 100%
rename from 1.8.0/buster/jdk-15/install-quicklisp
rename to 1.7.1/bullseye/jdk-16/install-quicklisp
diff --git a/1.7.1/bullseye/jdk-16/slim/Dockerfile b/1.7.1/bullseye/jdk-16/slim/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..9662dfd02dac0c92b9a285ec2f5ac3239a58d54a
--- /dev/null
+++ b/1.7.1/bullseye/jdk-16/slim/Dockerfile
@@ -0,0 +1,42 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+FROM openjdk:16-jdk-slim-bullseye
+
+ENV ABCL_VERSION 1.7.1
+
+WORKDIR /usr/local/share/
+
+ENV ABCL_SIGNING_KEY 5491D207FF9ECDE0BEA277772A9641104DB1773D
+
+RUN set -x \
+    # Install fetch deps
+    && apt-get update \
+    && apt-get install --no-install-recommends -y curl gnupg dirmngr \
+    && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz" > "abcl-bin-${ABCL_VERSION}.tar.gz" \
+    && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz.asc" > "abcl-bin-${ABCL_VERSION}.tar.gz.asc" \
+    && GNUPGHOME="$(mktemp -d)" \
+    && export GNUPGHOME \
+    && gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "${ABCL_SIGNING_KEY}" \
+    && gpg --batch --verify "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar.gz" \
+    && gunzip "abcl-bin-${ABCL_VERSION}.tar.gz" \
+    && tar xf "abcl-bin-${ABCL_VERSION}.tar" \
+    && mv "abcl-bin-${ABCL_VERSION}" abcl \
+    && rm -rf "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar" "$GNUPGHOME" \
+    # Remove fetch deps
+    && apt-get remove -y curl gnupg dirmngr \
+    && apt-get autoremove -y \
+    && rm -rf /var/lib/apt/lists/* \
+    # Smoke test ABCL.
+    && java -jar /usr/local/share/abcl/abcl.jar --batch --eval '(print (multiple-value-list (lisp-implementation-version)))'
+
+WORKDIR /
+
+COPY abcl-wrapper /usr/local/bin/abcl
+COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
+
+ENTRYPOINT ["docker-entrypoint.sh"]
+
+CMD ["abcl"]
diff --git a/1.8.0/buster/jdk-15/slim/abcl-wrapper b/1.7.1/bullseye/jdk-16/slim/abcl-wrapper
similarity index 100%
rename from 1.8.0/buster/jdk-15/slim/abcl-wrapper
rename to 1.7.1/bullseye/jdk-16/slim/abcl-wrapper
diff --git a/1.8.0/buster/jdk-15/slim/docker-entrypoint.sh b/1.7.1/bullseye/jdk-16/slim/docker-entrypoint.sh
similarity index 100%
rename from 1.8.0/buster/jdk-15/slim/docker-entrypoint.sh
rename to 1.7.1/bullseye/jdk-16/slim/docker-entrypoint.sh
diff --git a/1.7.1/bullseye/jdk-8/Dockerfile b/1.7.1/bullseye/jdk-8/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..6ed88d0663d14b31aea699ee25d2223fe3bb98a7
--- /dev/null
+++ b/1.7.1/bullseye/jdk-8/Dockerfile
@@ -0,0 +1,141 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+FROM openjdk:8-jdk-bullseye
+
+# Install the packages that buildpack-deps adds on top of
+# buildpack-deps:scm. This is a bit odd for a JVM based image, but the CFFI
+# project is commonly used and requires a compiler, headers, etc. Additionally,
+# this gives a more uniform experience between the different cl-docker-images
+# project's images.
+RUN set -ex; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        autoconf \
+        automake \
+        bzip2 \
+        default-libmysqlclient-dev \
+        dpkg-dev \
+        file \
+        g++ \
+        gcc \
+        imagemagick \
+        libbz2-dev \
+        libc6-dev \
+        libcurl4-openssl-dev \
+        libdb-dev \
+        libevent-dev \
+        libffi-dev \
+        libgdbm-dev \
+        libglib2.0-dev \
+        libgmp-dev \
+        libjpeg-dev \
+        libkrb5-dev \
+        liblzma-dev \
+        libmagickcore-dev \
+        libmagickwand-dev \
+        libmaxminddb-dev \
+        libncurses5-dev \
+        libncursesw5-dev \
+        libpng-dev \
+        libpq-dev \
+        libreadline-dev \
+        libsqlite3-dev \
+        libssl-dev \
+        libtool \
+        libwebp-dev \
+        libxml2-dev \
+        libxslt-dev \
+        libyaml-dev \
+        make \
+        patch \
+        unzip \
+        xz-utils \
+        zlib1g-dev \
+        \
+    ; \
+    rm -rf /var/lib/apt/lists/*
+
+# Install Maven as it is commonly used with ABCL, including with anything that
+# uses CFFI. We install it ourselves instead of basing the image off of maven
+# because the maven image only follows openjdk's default OS choice and does not
+# provide Debian based images for jdk12+.
+
+ARG MAVEN_VERSION=3.8.2
+ARG MAVEN_SHA=b0bf39460348b2d8eae1c861ced6c3e8a077b6e761fb3d4669be5de09490521a74db294cf031b0775b2dfcd57bd82246e42ce10904063ef8e3806222e686f222
+
+WORKDIR /usr/share/maven
+
+RUN curl -fsSL https://apache.osuosl.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz > /tmp/apache-maven.tar.gz \
+  && echo "${MAVEN_SHA}  /tmp/apache-maven.tar.gz" | sha512sum -c - \
+  && tar -xzf /tmp/apache-maven.tar.gz --strip-components=1 \
+  && rm -f /tmp/apache-maven.tar.gz \
+  && ln -s /usr/share/maven/bin/mvn /usr/bin/mvn
+
+ENV MAVEN_HOME /usr/share/maven
+
+# Now install ABCL
+
+ENV ABCL_VERSION 1.7.1
+
+WORKDIR /usr/local/share/
+
+ENV ABCL_SIGNING_KEY 5491D207FF9ECDE0BEA277772A9641104DB1773D
+
+RUN set -x \
+    && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz" > "abcl-bin-${ABCL_VERSION}.tar.gz" \
+    && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz.asc" > "abcl-bin-${ABCL_VERSION}.tar.gz.asc" \
+    && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-src-${ABCL_VERSION}.tar.gz" > "abcl-src-${ABCL_VERSION}.tar.gz" \
+    && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-src-${ABCL_VERSION}.tar.gz.asc" > "abcl-src-${ABCL_VERSION}.tar.gz.asc" \
+    && GNUPGHOME="$(mktemp -d)" \
+    && export GNUPGHOME \
+    && gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "${ABCL_SIGNING_KEY}" \
+    && gpg --batch --verify "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar.gz" \
+    && gpg --batch --verify "abcl-src-${ABCL_VERSION}.tar.gz.asc" "abcl-src-${ABCL_VERSION}.tar.gz" \
+    && gunzip "abcl-bin-${ABCL_VERSION}.tar.gz" \
+    && tar xf "abcl-bin-${ABCL_VERSION}.tar" \
+    && gunzip "abcl-src-${ABCL_VERSION}.tar.gz" \
+    && tar xf "abcl-src-${ABCL_VERSION}.tar" \
+    && mv "abcl-bin-${ABCL_VERSION}" abcl \
+    && mkdir -p /usr/local/src \
+    && mv "abcl-src-${ABCL_VERSION}" /usr/local/src/abcl/ \
+    && rm -rf "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar" "abcl-src-${ABCL_VERSION}.tar.gz.asc" "abcl-src-${ABCL_VERSION}.tar" "$GNUPGHOME" \
+    && java -jar /usr/local/share/abcl/abcl.jar --batch --eval '(print (multiple-value-list (lisp-implementation-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 keyserver.ubuntu.com --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 abcl-wrapper /usr/local/bin/abcl
+COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
+
+ENTRYPOINT ["docker-entrypoint.sh"]
+
+CMD ["abcl"]
diff --git a/1.7.1/bullseye/jdk-8/abcl-wrapper b/1.7.1/bullseye/jdk-8/abcl-wrapper
new file mode 100755
index 0000000000000000000000000000000000000000..033e29a36854202544bbebe1b3a5bedcc6247fd1
--- /dev/null
+++ b/1.7.1/bullseye/jdk-8/abcl-wrapper
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+exec java -cp "/usr/local/share/abcl/abcl.jar:$CLASSPATH" \
+     -XshowSettings:vm -Dfile.encoding=UTF-8 \
+     -XX:+UseG1GC -XX:+AggressiveOpts -XX:CompileThreshold=10 \
+     org.armedbear.lisp.Main \
+     "$@"
diff --git a/1.7.1/bullseye/jdk-8/docker-entrypoint.sh b/1.7.1/bullseye/jdk-8/docker-entrypoint.sh
new file mode 100755
index 0000000000000000000000000000000000000000..7f6b5a34d7349c9fbeb8f116018e075bb257005d
--- /dev/null
+++ b/1.7.1/bullseye/jdk-8/docker-entrypoint.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# If the first arg starts with a hyphen, prepend abcl to arguments.
+if [ "${1#-}" != "$1" ]; then
+	set -- abcl "$@"
+fi
+
+exec "$@"
diff --git a/1.7.1/bullseye/jdk-8/install-quicklisp b/1.7.1/bullseye/jdk-8/install-quicklisp
new file mode 100755
index 0000000000000000000000000000000000000000..ae80aa54dd8c444805e3b99ebe3251f4ae4429f0
--- /dev/null
+++ b/1.7.1/bullseye/jdk-8/install-quicklisp
@@ -0,0 +1,18 @@
+#!/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
+
+abcl --batch \
+     --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)))"
diff --git a/1.7.1/bullseye/jdk-8/slim/Dockerfile b/1.7.1/bullseye/jdk-8/slim/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..5366afa717c7fa73327ce353cb067e4b8472ff81
--- /dev/null
+++ b/1.7.1/bullseye/jdk-8/slim/Dockerfile
@@ -0,0 +1,42 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+FROM openjdk:8-jdk-slim-bullseye
+
+ENV ABCL_VERSION 1.7.1
+
+WORKDIR /usr/local/share/
+
+ENV ABCL_SIGNING_KEY 5491D207FF9ECDE0BEA277772A9641104DB1773D
+
+RUN set -x \
+    # Install fetch deps
+    && apt-get update \
+    && apt-get install --no-install-recommends -y curl gnupg dirmngr \
+    && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz" > "abcl-bin-${ABCL_VERSION}.tar.gz" \
+    && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz.asc" > "abcl-bin-${ABCL_VERSION}.tar.gz.asc" \
+    && GNUPGHOME="$(mktemp -d)" \
+    && export GNUPGHOME \
+    && gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "${ABCL_SIGNING_KEY}" \
+    && gpg --batch --verify "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar.gz" \
+    && gunzip "abcl-bin-${ABCL_VERSION}.tar.gz" \
+    && tar xf "abcl-bin-${ABCL_VERSION}.tar" \
+    && mv "abcl-bin-${ABCL_VERSION}" abcl \
+    && rm -rf "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar" "$GNUPGHOME" \
+    # Remove fetch deps
+    && apt-get remove -y curl gnupg dirmngr \
+    && apt-get autoremove -y \
+    && rm -rf /var/lib/apt/lists/* \
+    # Smoke test ABCL.
+    && java -jar /usr/local/share/abcl/abcl.jar --batch --eval '(print (multiple-value-list (lisp-implementation-version)))'
+
+WORKDIR /
+
+COPY abcl-wrapper /usr/local/bin/abcl
+COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
+
+ENTRYPOINT ["docker-entrypoint.sh"]
+
+CMD ["abcl"]
diff --git a/1.7.1/bullseye/jdk-8/slim/abcl-wrapper b/1.7.1/bullseye/jdk-8/slim/abcl-wrapper
new file mode 100755
index 0000000000000000000000000000000000000000..033e29a36854202544bbebe1b3a5bedcc6247fd1
--- /dev/null
+++ b/1.7.1/bullseye/jdk-8/slim/abcl-wrapper
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+exec java -cp "/usr/local/share/abcl/abcl.jar:$CLASSPATH" \
+     -XshowSettings:vm -Dfile.encoding=UTF-8 \
+     -XX:+UseG1GC -XX:+AggressiveOpts -XX:CompileThreshold=10 \
+     org.armedbear.lisp.Main \
+     "$@"
diff --git a/1.7.1/bullseye/jdk-8/slim/docker-entrypoint.sh b/1.7.1/bullseye/jdk-8/slim/docker-entrypoint.sh
new file mode 100755
index 0000000000000000000000000000000000000000..7f6b5a34d7349c9fbeb8f116018e075bb257005d
--- /dev/null
+++ b/1.7.1/bullseye/jdk-8/slim/docker-entrypoint.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# If the first arg starts with a hyphen, prepend abcl to arguments.
+if [ "${1#-}" != "$1" ]; then
+	set -- abcl "$@"
+fi
+
+exec "$@"
diff --git a/1.7.1/buster/jdk-11/Dockerfile b/1.7.1/buster/jdk-11/Dockerfile
index 85c586918dfe3e2f82642aa59718f50b1f87b10b..5ad7680571895c24f7dac1d2e196a6358923de70 100644
--- a/1.7.1/buster/jdk-11/Dockerfile
+++ b/1.7.1/buster/jdk-11/Dockerfile
@@ -61,10 +61,10 @@ RUN set -ex; \
 # Install Maven as it is commonly used with ABCL, including with anything that
 # uses CFFI. We install it ourselves instead of basing the image off of maven
 # because the maven image only follows openjdk's default OS choice and does not
-# provide buster based images for jdk12+.
+# provide Debian based images for jdk12+.
 
-ARG MAVEN_VERSION=3.6.3
-ARG MAVEN_SHA=c35a1803a6e70a126e80b2b3ae33eed961f83ed74d18fcd16909b2d44d7dada3203f1ffe726c17ef8dcca2dcaa9fca676987befeadc9b9f759967a8cb77181c0
+ARG MAVEN_VERSION=3.8.2
+ARG MAVEN_SHA=b0bf39460348b2d8eae1c861ced6c3e8a077b6e761fb3d4669be5de09490521a74db294cf031b0775b2dfcd57bd82246e42ce10904063ef8e3806222e686f222
 
 WORKDIR /usr/share/maven
 
@@ -91,7 +91,7 @@ RUN set -x \
     && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-src-${ABCL_VERSION}.tar.gz.asc" > "abcl-src-${ABCL_VERSION}.tar.gz.asc" \
     && GNUPGHOME="$(mktemp -d)" \
     && export GNUPGHOME \
-    && gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "${ABCL_SIGNING_KEY}" \
+    && gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "${ABCL_SIGNING_KEY}" \
     && gpg --batch --verify "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar.gz" \
     && gpg --batch --verify "abcl-src-${ABCL_VERSION}.tar.gz.asc" "abcl-src-${ABCL_VERSION}.tar.gz" \
     && gunzip "abcl-bin-${ABCL_VERSION}.tar.gz" \
@@ -114,7 +114,7 @@ RUN set -x \
     && 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 --keyserver keyserver.ubuntu.com --recv-keys "${QUICKLISP_SIGNING_KEY}" \
     && gpg --batch --verify "quicklisp.lisp.asc" "quicklisp.lisp" \
     && rm quicklisp.lisp.asc \
     && rm -rf "$GNUPGHOME"
diff --git a/1.7.1/buster/jdk-11/slim/Dockerfile b/1.7.1/buster/jdk-11/slim/Dockerfile
index 88f98e4a3807fbf9b408a541ee4f665c9803373e..8f3bc060bd45c7979a3ba14eb834eb9b058a2466 100644
--- a/1.7.1/buster/jdk-11/slim/Dockerfile
+++ b/1.7.1/buster/jdk-11/slim/Dockerfile
@@ -19,7 +19,7 @@ RUN set -x \
     && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz.asc" > "abcl-bin-${ABCL_VERSION}.tar.gz.asc" \
     && GNUPGHOME="$(mktemp -d)" \
     && export GNUPGHOME \
-    && gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "${ABCL_SIGNING_KEY}" \
+    && gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "${ABCL_SIGNING_KEY}" \
     && gpg --batch --verify "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar.gz" \
     && gunzip "abcl-bin-${ABCL_VERSION}.tar.gz" \
     && tar xf "abcl-bin-${ABCL_VERSION}.tar" \
diff --git a/1.7.1/buster/jdk-16/Dockerfile b/1.7.1/buster/jdk-16/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..6e4048577bfb68b01de1beac2694f82a2b4d2102
--- /dev/null
+++ b/1.7.1/buster/jdk-16/Dockerfile
@@ -0,0 +1,141 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+FROM openjdk:16-jdk-buster
+
+# Install the packages that buildpack-deps adds on top of
+# buildpack-deps:scm. This is a bit odd for a JVM based image, but the CFFI
+# project is commonly used and requires a compiler, headers, etc. Additionally,
+# this gives a more uniform experience between the different cl-docker-images
+# project's images.
+RUN set -ex; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        autoconf \
+        automake \
+        bzip2 \
+        default-libmysqlclient-dev \
+        dpkg-dev \
+        file \
+        g++ \
+        gcc \
+        imagemagick \
+        libbz2-dev \
+        libc6-dev \
+        libcurl4-openssl-dev \
+        libdb-dev \
+        libevent-dev \
+        libffi-dev \
+        libgdbm-dev \
+        libglib2.0-dev \
+        libgmp-dev \
+        libjpeg-dev \
+        libkrb5-dev \
+        liblzma-dev \
+        libmagickcore-dev \
+        libmagickwand-dev \
+        libmaxminddb-dev \
+        libncurses5-dev \
+        libncursesw5-dev \
+        libpng-dev \
+        libpq-dev \
+        libreadline-dev \
+        libsqlite3-dev \
+        libssl-dev \
+        libtool \
+        libwebp-dev \
+        libxml2-dev \
+        libxslt-dev \
+        libyaml-dev \
+        make \
+        patch \
+        unzip \
+        xz-utils \
+        zlib1g-dev \
+        \
+    ; \
+    rm -rf /var/lib/apt/lists/*
+
+# Install Maven as it is commonly used with ABCL, including with anything that
+# uses CFFI. We install it ourselves instead of basing the image off of maven
+# because the maven image only follows openjdk's default OS choice and does not
+# provide Debian based images for jdk12+.
+
+ARG MAVEN_VERSION=3.8.2
+ARG MAVEN_SHA=b0bf39460348b2d8eae1c861ced6c3e8a077b6e761fb3d4669be5de09490521a74db294cf031b0775b2dfcd57bd82246e42ce10904063ef8e3806222e686f222
+
+WORKDIR /usr/share/maven
+
+RUN curl -fsSL https://apache.osuosl.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz > /tmp/apache-maven.tar.gz \
+  && echo "${MAVEN_SHA}  /tmp/apache-maven.tar.gz" | sha512sum -c - \
+  && tar -xzf /tmp/apache-maven.tar.gz --strip-components=1 \
+  && rm -f /tmp/apache-maven.tar.gz \
+  && ln -s /usr/share/maven/bin/mvn /usr/bin/mvn
+
+ENV MAVEN_HOME /usr/share/maven
+
+# Now install ABCL
+
+ENV ABCL_VERSION 1.7.1
+
+WORKDIR /usr/local/share/
+
+ENV ABCL_SIGNING_KEY 5491D207FF9ECDE0BEA277772A9641104DB1773D
+
+RUN set -x \
+    && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz" > "abcl-bin-${ABCL_VERSION}.tar.gz" \
+    && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz.asc" > "abcl-bin-${ABCL_VERSION}.tar.gz.asc" \
+    && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-src-${ABCL_VERSION}.tar.gz" > "abcl-src-${ABCL_VERSION}.tar.gz" \
+    && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-src-${ABCL_VERSION}.tar.gz.asc" > "abcl-src-${ABCL_VERSION}.tar.gz.asc" \
+    && GNUPGHOME="$(mktemp -d)" \
+    && export GNUPGHOME \
+    && gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "${ABCL_SIGNING_KEY}" \
+    && gpg --batch --verify "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar.gz" \
+    && gpg --batch --verify "abcl-src-${ABCL_VERSION}.tar.gz.asc" "abcl-src-${ABCL_VERSION}.tar.gz" \
+    && gunzip "abcl-bin-${ABCL_VERSION}.tar.gz" \
+    && tar xf "abcl-bin-${ABCL_VERSION}.tar" \
+    && gunzip "abcl-src-${ABCL_VERSION}.tar.gz" \
+    && tar xf "abcl-src-${ABCL_VERSION}.tar" \
+    && mv "abcl-bin-${ABCL_VERSION}" abcl \
+    && mkdir -p /usr/local/src \
+    && mv "abcl-src-${ABCL_VERSION}" /usr/local/src/abcl/ \
+    && rm -rf "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar" "abcl-src-${ABCL_VERSION}.tar.gz.asc" "abcl-src-${ABCL_VERSION}.tar" "$GNUPGHOME" \
+    && java -jar /usr/local/share/abcl/abcl.jar --batch --eval '(print (multiple-value-list (lisp-implementation-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 keyserver.ubuntu.com --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 abcl-wrapper /usr/local/bin/abcl
+COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
+
+ENTRYPOINT ["docker-entrypoint.sh"]
+
+CMD ["abcl"]
diff --git a/abcl-wrapper-jdk15 b/1.7.1/buster/jdk-16/abcl-wrapper
similarity index 100%
rename from abcl-wrapper-jdk15
rename to 1.7.1/buster/jdk-16/abcl-wrapper
diff --git a/1.7.1/buster/jdk-16/docker-entrypoint.sh b/1.7.1/buster/jdk-16/docker-entrypoint.sh
new file mode 100755
index 0000000000000000000000000000000000000000..7f6b5a34d7349c9fbeb8f116018e075bb257005d
--- /dev/null
+++ b/1.7.1/buster/jdk-16/docker-entrypoint.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# If the first arg starts with a hyphen, prepend abcl to arguments.
+if [ "${1#-}" != "$1" ]; then
+	set -- abcl "$@"
+fi
+
+exec "$@"
diff --git a/1.7.1/buster/jdk-16/install-quicklisp b/1.7.1/buster/jdk-16/install-quicklisp
new file mode 100755
index 0000000000000000000000000000000000000000..ae80aa54dd8c444805e3b99ebe3251f4ae4429f0
--- /dev/null
+++ b/1.7.1/buster/jdk-16/install-quicklisp
@@ -0,0 +1,18 @@
+#!/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
+
+abcl --batch \
+     --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)))"
diff --git a/1.7.1/buster/jdk-16/slim/Dockerfile b/1.7.1/buster/jdk-16/slim/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..fcc34405b39ec232cdef7fce399c7c5d616cac01
--- /dev/null
+++ b/1.7.1/buster/jdk-16/slim/Dockerfile
@@ -0,0 +1,42 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+FROM openjdk:16-jdk-slim-buster
+
+ENV ABCL_VERSION 1.7.1
+
+WORKDIR /usr/local/share/
+
+ENV ABCL_SIGNING_KEY 5491D207FF9ECDE0BEA277772A9641104DB1773D
+
+RUN set -x \
+    # Install fetch deps
+    && apt-get update \
+    && apt-get install --no-install-recommends -y curl gnupg dirmngr \
+    && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz" > "abcl-bin-${ABCL_VERSION}.tar.gz" \
+    && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz.asc" > "abcl-bin-${ABCL_VERSION}.tar.gz.asc" \
+    && GNUPGHOME="$(mktemp -d)" \
+    && export GNUPGHOME \
+    && gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "${ABCL_SIGNING_KEY}" \
+    && gpg --batch --verify "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar.gz" \
+    && gunzip "abcl-bin-${ABCL_VERSION}.tar.gz" \
+    && tar xf "abcl-bin-${ABCL_VERSION}.tar" \
+    && mv "abcl-bin-${ABCL_VERSION}" abcl \
+    && rm -rf "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar" "$GNUPGHOME" \
+    # Remove fetch deps
+    && apt-get remove -y curl gnupg dirmngr \
+    && apt-get autoremove -y \
+    && rm -rf /var/lib/apt/lists/* \
+    # Smoke test ABCL.
+    && java -jar /usr/local/share/abcl/abcl.jar --batch --eval '(print (multiple-value-list (lisp-implementation-version)))'
+
+WORKDIR /
+
+COPY abcl-wrapper /usr/local/bin/abcl
+COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
+
+ENTRYPOINT ["docker-entrypoint.sh"]
+
+CMD ["abcl"]
diff --git a/1.7.1/buster/jdk-16/slim/abcl-wrapper b/1.7.1/buster/jdk-16/slim/abcl-wrapper
new file mode 100755
index 0000000000000000000000000000000000000000..da76f04365f54d85863e4bd70e3f934c3c21c6d0
--- /dev/null
+++ b/1.7.1/buster/jdk-16/slim/abcl-wrapper
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+exec java -cp "/usr/local/share/abcl/abcl.jar:$CLASSPATH" \
+     -XshowSettings:vm -Dfile.encoding=UTF-8 \
+     -XX:CompileThreshold=10 \
+     org.armedbear.lisp.Main \
+     "$@"
diff --git a/1.7.1/buster/jdk-16/slim/docker-entrypoint.sh b/1.7.1/buster/jdk-16/slim/docker-entrypoint.sh
new file mode 100755
index 0000000000000000000000000000000000000000..7f6b5a34d7349c9fbeb8f116018e075bb257005d
--- /dev/null
+++ b/1.7.1/buster/jdk-16/slim/docker-entrypoint.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# If the first arg starts with a hyphen, prepend abcl to arguments.
+if [ "${1#-}" != "$1" ]; then
+	set -- abcl "$@"
+fi
+
+exec "$@"
diff --git a/1.7.1/buster/jdk-8/Dockerfile b/1.7.1/buster/jdk-8/Dockerfile
index ee82d9a03ef32befd9158b46be71461591c283be..635debb25805bb145cfce8cdd5669b247e531d06 100644
--- a/1.7.1/buster/jdk-8/Dockerfile
+++ b/1.7.1/buster/jdk-8/Dockerfile
@@ -61,10 +61,10 @@ RUN set -ex; \
 # Install Maven as it is commonly used with ABCL, including with anything that
 # uses CFFI. We install it ourselves instead of basing the image off of maven
 # because the maven image only follows openjdk's default OS choice and does not
-# provide buster based images for jdk12+.
+# provide Debian based images for jdk12+.
 
-ARG MAVEN_VERSION=3.6.3
-ARG MAVEN_SHA=c35a1803a6e70a126e80b2b3ae33eed961f83ed74d18fcd16909b2d44d7dada3203f1ffe726c17ef8dcca2dcaa9fca676987befeadc9b9f759967a8cb77181c0
+ARG MAVEN_VERSION=3.8.2
+ARG MAVEN_SHA=b0bf39460348b2d8eae1c861ced6c3e8a077b6e761fb3d4669be5de09490521a74db294cf031b0775b2dfcd57bd82246e42ce10904063ef8e3806222e686f222
 
 WORKDIR /usr/share/maven
 
@@ -91,7 +91,7 @@ RUN set -x \
     && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-src-${ABCL_VERSION}.tar.gz.asc" > "abcl-src-${ABCL_VERSION}.tar.gz.asc" \
     && GNUPGHOME="$(mktemp -d)" \
     && export GNUPGHOME \
-    && gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "${ABCL_SIGNING_KEY}" \
+    && gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "${ABCL_SIGNING_KEY}" \
     && gpg --batch --verify "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar.gz" \
     && gpg --batch --verify "abcl-src-${ABCL_VERSION}.tar.gz.asc" "abcl-src-${ABCL_VERSION}.tar.gz" \
     && gunzip "abcl-bin-${ABCL_VERSION}.tar.gz" \
@@ -114,7 +114,7 @@ RUN set -x \
     && 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 --keyserver keyserver.ubuntu.com --recv-keys "${QUICKLISP_SIGNING_KEY}" \
     && gpg --batch --verify "quicklisp.lisp.asc" "quicklisp.lisp" \
     && rm quicklisp.lisp.asc \
     && rm -rf "$GNUPGHOME"
diff --git a/1.7.1/buster/jdk-8/slim/Dockerfile b/1.7.1/buster/jdk-8/slim/Dockerfile
index 03c7bb13774cd00fe14f5b92e1160aced60fd3a6..899a769522d3ffb24e72fbbd0d491341c6e0ea9d 100644
--- a/1.7.1/buster/jdk-8/slim/Dockerfile
+++ b/1.7.1/buster/jdk-8/slim/Dockerfile
@@ -19,7 +19,7 @@ RUN set -x \
     && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz.asc" > "abcl-bin-${ABCL_VERSION}.tar.gz.asc" \
     && GNUPGHOME="$(mktemp -d)" \
     && export GNUPGHOME \
-    && gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "${ABCL_SIGNING_KEY}" \
+    && gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "${ABCL_SIGNING_KEY}" \
     && gpg --batch --verify "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar.gz" \
     && gunzip "abcl-bin-${ABCL_VERSION}.tar.gz" \
     && tar xf "abcl-bin-${ABCL_VERSION}.tar" \
diff --git a/1.7.1/windowsservercore-1809/jdk-15/Dockerfile b/1.7.1/windowsservercore-1809/jdk-16/Dockerfile
similarity index 97%
rename from 1.7.1/windowsservercore-1809/jdk-15/Dockerfile
rename to 1.7.1/windowsservercore-1809/jdk-16/Dockerfile
index 83461a332d0a12bca146bf178267ef99bc6f6383..fefeb486ef1f2460066c211aa37ebb16e55eb3d6 100644
--- a/1.7.1/windowsservercore-1809/jdk-15/Dockerfile
+++ b/1.7.1/windowsservercore-1809/jdk-16/Dockerfile
@@ -3,7 +3,7 @@
 #
 # PLEASE DO NOT EDIT IT DIRECTLY.
 #
-FROM openjdk:15-jdk-windowsservercore-1809
+FROM openjdk:16-jdk-windowsservercore-1809
 
 SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
 
diff --git a/1.7.1/windowsservercore-1809/jdk-15/abcl-wrapper.bat b/1.7.1/windowsservercore-1809/jdk-16/abcl-wrapper.bat
similarity index 100%
rename from 1.7.1/windowsservercore-1809/jdk-15/abcl-wrapper.bat
rename to 1.7.1/windowsservercore-1809/jdk-16/abcl-wrapper.bat
diff --git a/1.7.1/windowsservercore-ltsc2016/jdk-15/Dockerfile b/1.7.1/windowsservercore-ltsc2016/jdk-16/Dockerfile
similarity index 96%
rename from 1.7.1/windowsservercore-ltsc2016/jdk-15/Dockerfile
rename to 1.7.1/windowsservercore-ltsc2016/jdk-16/Dockerfile
index c1c9f291b85e4a1412f644528bbe6ddaf093ec24..00183a8768cc6fafe12487d29b6e1486f30514d4 100644
--- a/1.7.1/windowsservercore-ltsc2016/jdk-15/Dockerfile
+++ b/1.7.1/windowsservercore-ltsc2016/jdk-16/Dockerfile
@@ -3,7 +3,7 @@
 #
 # PLEASE DO NOT EDIT IT DIRECTLY.
 #
-FROM openjdk:15-jdk-windowsservercore-ltsc2016
+FROM openjdk:16-jdk-windowsservercore-ltsc2016
 
 SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
 
diff --git a/1.7.1/windowsservercore-ltsc2016/jdk-15/abcl-wrapper.bat b/1.7.1/windowsservercore-ltsc2016/jdk-16/abcl-wrapper.bat
similarity index 100%
rename from 1.7.1/windowsservercore-ltsc2016/jdk-15/abcl-wrapper.bat
rename to 1.7.1/windowsservercore-ltsc2016/jdk-16/abcl-wrapper.bat
diff --git a/1.8.0/buster/jdk-15/Dockerfile b/1.8.0/bullseye/jdk-11/Dockerfile
similarity index 91%
rename from 1.8.0/buster/jdk-15/Dockerfile
rename to 1.8.0/bullseye/jdk-11/Dockerfile
index d7b3d8c109ff3ec4a16b96888131add3b8140a0d..97a44e8f0b0ae4820b3c13723c72d15fe650f32f 100644
--- a/1.8.0/buster/jdk-15/Dockerfile
+++ b/1.8.0/bullseye/jdk-11/Dockerfile
@@ -3,7 +3,7 @@
 #
 # PLEASE DO NOT EDIT IT DIRECTLY.
 #
-FROM openjdk:15-jdk-buster
+FROM openjdk:11-jdk-bullseye
 
 # Install the packages that buildpack-deps adds on top of
 # buildpack-deps:scm. This is a bit odd for a JVM based image, but the CFFI
@@ -61,10 +61,10 @@ RUN set -ex; \
 # Install Maven as it is commonly used with ABCL, including with anything that
 # uses CFFI. We install it ourselves instead of basing the image off of maven
 # because the maven image only follows openjdk's default OS choice and does not
-# provide buster based images for jdk12+.
+# provide Debian based images for jdk12+.
 
-ARG MAVEN_VERSION=3.6.3
-ARG MAVEN_SHA=c35a1803a6e70a126e80b2b3ae33eed961f83ed74d18fcd16909b2d44d7dada3203f1ffe726c17ef8dcca2dcaa9fca676987befeadc9b9f759967a8cb77181c0
+ARG MAVEN_VERSION=3.8.2
+ARG MAVEN_SHA=b0bf39460348b2d8eae1c861ced6c3e8a077b6e761fb3d4669be5de09490521a74db294cf031b0775b2dfcd57bd82246e42ce10904063ef8e3806222e686f222
 
 WORKDIR /usr/share/maven
 
@@ -91,7 +91,7 @@ RUN set -x \
     && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-src-${ABCL_VERSION}.tar.gz.asc" > "abcl-src-${ABCL_VERSION}.tar.gz.asc" \
     && GNUPGHOME="$(mktemp -d)" \
     && export GNUPGHOME \
-    && gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "${ABCL_SIGNING_KEY}" \
+    && gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "${ABCL_SIGNING_KEY}" \
     && gpg --batch --verify "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar.gz" \
     && gpg --batch --verify "abcl-src-${ABCL_VERSION}.tar.gz.asc" "abcl-src-${ABCL_VERSION}.tar.gz" \
     && gunzip "abcl-bin-${ABCL_VERSION}.tar.gz" \
@@ -114,7 +114,7 @@ RUN set -x \
     && 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 --keyserver keyserver.ubuntu.com --recv-keys "${QUICKLISP_SIGNING_KEY}" \
     && gpg --batch --verify "quicklisp.lisp.asc" "quicklisp.lisp" \
     && rm quicklisp.lisp.asc \
     && rm -rf "$GNUPGHOME"
diff --git a/1.8.0/bullseye/jdk-11/abcl-wrapper b/1.8.0/bullseye/jdk-11/abcl-wrapper
new file mode 100755
index 0000000000000000000000000000000000000000..da76f04365f54d85863e4bd70e3f934c3c21c6d0
--- /dev/null
+++ b/1.8.0/bullseye/jdk-11/abcl-wrapper
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+exec java -cp "/usr/local/share/abcl/abcl.jar:$CLASSPATH" \
+     -XshowSettings:vm -Dfile.encoding=UTF-8 \
+     -XX:CompileThreshold=10 \
+     org.armedbear.lisp.Main \
+     "$@"
diff --git a/1.8.0/bullseye/jdk-11/docker-entrypoint.sh b/1.8.0/bullseye/jdk-11/docker-entrypoint.sh
new file mode 100755
index 0000000000000000000000000000000000000000..7f6b5a34d7349c9fbeb8f116018e075bb257005d
--- /dev/null
+++ b/1.8.0/bullseye/jdk-11/docker-entrypoint.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# If the first arg starts with a hyphen, prepend abcl to arguments.
+if [ "${1#-}" != "$1" ]; then
+	set -- abcl "$@"
+fi
+
+exec "$@"
diff --git a/1.8.0/bullseye/jdk-11/install-quicklisp b/1.8.0/bullseye/jdk-11/install-quicklisp
new file mode 100755
index 0000000000000000000000000000000000000000..ae80aa54dd8c444805e3b99ebe3251f4ae4429f0
--- /dev/null
+++ b/1.8.0/bullseye/jdk-11/install-quicklisp
@@ -0,0 +1,18 @@
+#!/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
+
+abcl --batch \
+     --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)))"
diff --git a/1.8.0/buster/jdk-15/slim/Dockerfile b/1.8.0/bullseye/jdk-11/slim/Dockerfile
similarity index 92%
rename from 1.8.0/buster/jdk-15/slim/Dockerfile
rename to 1.8.0/bullseye/jdk-11/slim/Dockerfile
index 8d1ab2dd499c37cfe0e08ddeb9d699865393df30..4f69db0f05195b95fe579f327015bf5f8055668a 100644
--- a/1.8.0/buster/jdk-15/slim/Dockerfile
+++ b/1.8.0/bullseye/jdk-11/slim/Dockerfile
@@ -3,7 +3,7 @@
 #
 # PLEASE DO NOT EDIT IT DIRECTLY.
 #
-FROM openjdk:15-jdk-slim-buster
+FROM openjdk:11-jdk-slim-bullseye
 
 ENV ABCL_VERSION 1.8.0
 
@@ -19,7 +19,7 @@ RUN set -x \
     && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz.asc" > "abcl-bin-${ABCL_VERSION}.tar.gz.asc" \
     && GNUPGHOME="$(mktemp -d)" \
     && export GNUPGHOME \
-    && gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "${ABCL_SIGNING_KEY}" \
+    && gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "${ABCL_SIGNING_KEY}" \
     && gpg --batch --verify "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar.gz" \
     && gunzip "abcl-bin-${ABCL_VERSION}.tar.gz" \
     && tar xf "abcl-bin-${ABCL_VERSION}.tar" \
diff --git a/1.8.0/bullseye/jdk-11/slim/abcl-wrapper b/1.8.0/bullseye/jdk-11/slim/abcl-wrapper
new file mode 100755
index 0000000000000000000000000000000000000000..da76f04365f54d85863e4bd70e3f934c3c21c6d0
--- /dev/null
+++ b/1.8.0/bullseye/jdk-11/slim/abcl-wrapper
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+exec java -cp "/usr/local/share/abcl/abcl.jar:$CLASSPATH" \
+     -XshowSettings:vm -Dfile.encoding=UTF-8 \
+     -XX:CompileThreshold=10 \
+     org.armedbear.lisp.Main \
+     "$@"
diff --git a/1.8.0/bullseye/jdk-11/slim/docker-entrypoint.sh b/1.8.0/bullseye/jdk-11/slim/docker-entrypoint.sh
new file mode 100755
index 0000000000000000000000000000000000000000..7f6b5a34d7349c9fbeb8f116018e075bb257005d
--- /dev/null
+++ b/1.8.0/bullseye/jdk-11/slim/docker-entrypoint.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# If the first arg starts with a hyphen, prepend abcl to arguments.
+if [ "${1#-}" != "$1" ]; then
+	set -- abcl "$@"
+fi
+
+exec "$@"
diff --git a/1.8.0/bullseye/jdk-16/Dockerfile b/1.8.0/bullseye/jdk-16/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..5f3de0c552cabad189fc720271281dc7106c7df7
--- /dev/null
+++ b/1.8.0/bullseye/jdk-16/Dockerfile
@@ -0,0 +1,141 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+FROM openjdk:16-jdk-bullseye
+
+# Install the packages that buildpack-deps adds on top of
+# buildpack-deps:scm. This is a bit odd for a JVM based image, but the CFFI
+# project is commonly used and requires a compiler, headers, etc. Additionally,
+# this gives a more uniform experience between the different cl-docker-images
+# project's images.
+RUN set -ex; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        autoconf \
+        automake \
+        bzip2 \
+        default-libmysqlclient-dev \
+        dpkg-dev \
+        file \
+        g++ \
+        gcc \
+        imagemagick \
+        libbz2-dev \
+        libc6-dev \
+        libcurl4-openssl-dev \
+        libdb-dev \
+        libevent-dev \
+        libffi-dev \
+        libgdbm-dev \
+        libglib2.0-dev \
+        libgmp-dev \
+        libjpeg-dev \
+        libkrb5-dev \
+        liblzma-dev \
+        libmagickcore-dev \
+        libmagickwand-dev \
+        libmaxminddb-dev \
+        libncurses5-dev \
+        libncursesw5-dev \
+        libpng-dev \
+        libpq-dev \
+        libreadline-dev \
+        libsqlite3-dev \
+        libssl-dev \
+        libtool \
+        libwebp-dev \
+        libxml2-dev \
+        libxslt-dev \
+        libyaml-dev \
+        make \
+        patch \
+        unzip \
+        xz-utils \
+        zlib1g-dev \
+        \
+    ; \
+    rm -rf /var/lib/apt/lists/*
+
+# Install Maven as it is commonly used with ABCL, including with anything that
+# uses CFFI. We install it ourselves instead of basing the image off of maven
+# because the maven image only follows openjdk's default OS choice and does not
+# provide Debian based images for jdk12+.
+
+ARG MAVEN_VERSION=3.8.2
+ARG MAVEN_SHA=b0bf39460348b2d8eae1c861ced6c3e8a077b6e761fb3d4669be5de09490521a74db294cf031b0775b2dfcd57bd82246e42ce10904063ef8e3806222e686f222
+
+WORKDIR /usr/share/maven
+
+RUN curl -fsSL https://apache.osuosl.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz > /tmp/apache-maven.tar.gz \
+  && echo "${MAVEN_SHA}  /tmp/apache-maven.tar.gz" | sha512sum -c - \
+  && tar -xzf /tmp/apache-maven.tar.gz --strip-components=1 \
+  && rm -f /tmp/apache-maven.tar.gz \
+  && ln -s /usr/share/maven/bin/mvn /usr/bin/mvn
+
+ENV MAVEN_HOME /usr/share/maven
+
+# Now install ABCL
+
+ENV ABCL_VERSION 1.8.0
+
+WORKDIR /usr/local/share/
+
+ENV ABCL_SIGNING_KEY 5491D207FF9ECDE0BEA277772A9641104DB1773D
+
+RUN set -x \
+    && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz" > "abcl-bin-${ABCL_VERSION}.tar.gz" \
+    && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz.asc" > "abcl-bin-${ABCL_VERSION}.tar.gz.asc" \
+    && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-src-${ABCL_VERSION}.tar.gz" > "abcl-src-${ABCL_VERSION}.tar.gz" \
+    && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-src-${ABCL_VERSION}.tar.gz.asc" > "abcl-src-${ABCL_VERSION}.tar.gz.asc" \
+    && GNUPGHOME="$(mktemp -d)" \
+    && export GNUPGHOME \
+    && gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "${ABCL_SIGNING_KEY}" \
+    && gpg --batch --verify "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar.gz" \
+    && gpg --batch --verify "abcl-src-${ABCL_VERSION}.tar.gz.asc" "abcl-src-${ABCL_VERSION}.tar.gz" \
+    && gunzip "abcl-bin-${ABCL_VERSION}.tar.gz" \
+    && tar xf "abcl-bin-${ABCL_VERSION}.tar" \
+    && gunzip "abcl-src-${ABCL_VERSION}.tar.gz" \
+    && tar xf "abcl-src-${ABCL_VERSION}.tar" \
+    && mv "abcl-bin-${ABCL_VERSION}" abcl \
+    && mkdir -p /usr/local/src \
+    && mv "abcl-src-${ABCL_VERSION}" /usr/local/src/abcl/ \
+    && rm -rf "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar" "abcl-src-${ABCL_VERSION}.tar.gz.asc" "abcl-src-${ABCL_VERSION}.tar" "$GNUPGHOME" \
+    && java -jar /usr/local/share/abcl/abcl.jar --batch --eval '(print (multiple-value-list (lisp-implementation-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 keyserver.ubuntu.com --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 abcl-wrapper /usr/local/bin/abcl
+COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
+
+ENTRYPOINT ["docker-entrypoint.sh"]
+
+CMD ["abcl"]
diff --git a/1.8.0/bullseye/jdk-16/abcl-wrapper b/1.8.0/bullseye/jdk-16/abcl-wrapper
new file mode 100755
index 0000000000000000000000000000000000000000..da76f04365f54d85863e4bd70e3f934c3c21c6d0
--- /dev/null
+++ b/1.8.0/bullseye/jdk-16/abcl-wrapper
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+exec java -cp "/usr/local/share/abcl/abcl.jar:$CLASSPATH" \
+     -XshowSettings:vm -Dfile.encoding=UTF-8 \
+     -XX:CompileThreshold=10 \
+     org.armedbear.lisp.Main \
+     "$@"
diff --git a/1.8.0/bullseye/jdk-16/docker-entrypoint.sh b/1.8.0/bullseye/jdk-16/docker-entrypoint.sh
new file mode 100755
index 0000000000000000000000000000000000000000..7f6b5a34d7349c9fbeb8f116018e075bb257005d
--- /dev/null
+++ b/1.8.0/bullseye/jdk-16/docker-entrypoint.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# If the first arg starts with a hyphen, prepend abcl to arguments.
+if [ "${1#-}" != "$1" ]; then
+	set -- abcl "$@"
+fi
+
+exec "$@"
diff --git a/1.8.0/bullseye/jdk-16/install-quicklisp b/1.8.0/bullseye/jdk-16/install-quicklisp
new file mode 100755
index 0000000000000000000000000000000000000000..ae80aa54dd8c444805e3b99ebe3251f4ae4429f0
--- /dev/null
+++ b/1.8.0/bullseye/jdk-16/install-quicklisp
@@ -0,0 +1,18 @@
+#!/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
+
+abcl --batch \
+     --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)))"
diff --git a/1.8.0/bullseye/jdk-16/slim/Dockerfile b/1.8.0/bullseye/jdk-16/slim/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..b98cb3f0eae4c1ec6801bf91b446bcd39637e69f
--- /dev/null
+++ b/1.8.0/bullseye/jdk-16/slim/Dockerfile
@@ -0,0 +1,42 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+FROM openjdk:16-jdk-slim-bullseye
+
+ENV ABCL_VERSION 1.8.0
+
+WORKDIR /usr/local/share/
+
+ENV ABCL_SIGNING_KEY 5491D207FF9ECDE0BEA277772A9641104DB1773D
+
+RUN set -x \
+    # Install fetch deps
+    && apt-get update \
+    && apt-get install --no-install-recommends -y curl gnupg dirmngr \
+    && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz" > "abcl-bin-${ABCL_VERSION}.tar.gz" \
+    && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz.asc" > "abcl-bin-${ABCL_VERSION}.tar.gz.asc" \
+    && GNUPGHOME="$(mktemp -d)" \
+    && export GNUPGHOME \
+    && gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "${ABCL_SIGNING_KEY}" \
+    && gpg --batch --verify "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar.gz" \
+    && gunzip "abcl-bin-${ABCL_VERSION}.tar.gz" \
+    && tar xf "abcl-bin-${ABCL_VERSION}.tar" \
+    && mv "abcl-bin-${ABCL_VERSION}" abcl \
+    && rm -rf "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar" "$GNUPGHOME" \
+    # Remove fetch deps
+    && apt-get remove -y curl gnupg dirmngr \
+    && apt-get autoremove -y \
+    && rm -rf /var/lib/apt/lists/* \
+    # Smoke test ABCL.
+    && java -jar /usr/local/share/abcl/abcl.jar --batch --eval '(print (multiple-value-list (lisp-implementation-version)))'
+
+WORKDIR /
+
+COPY abcl-wrapper /usr/local/bin/abcl
+COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
+
+ENTRYPOINT ["docker-entrypoint.sh"]
+
+CMD ["abcl"]
diff --git a/1.8.0/bullseye/jdk-16/slim/abcl-wrapper b/1.8.0/bullseye/jdk-16/slim/abcl-wrapper
new file mode 100755
index 0000000000000000000000000000000000000000..da76f04365f54d85863e4bd70e3f934c3c21c6d0
--- /dev/null
+++ b/1.8.0/bullseye/jdk-16/slim/abcl-wrapper
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+exec java -cp "/usr/local/share/abcl/abcl.jar:$CLASSPATH" \
+     -XshowSettings:vm -Dfile.encoding=UTF-8 \
+     -XX:CompileThreshold=10 \
+     org.armedbear.lisp.Main \
+     "$@"
diff --git a/1.8.0/bullseye/jdk-16/slim/docker-entrypoint.sh b/1.8.0/bullseye/jdk-16/slim/docker-entrypoint.sh
new file mode 100755
index 0000000000000000000000000000000000000000..7f6b5a34d7349c9fbeb8f116018e075bb257005d
--- /dev/null
+++ b/1.8.0/bullseye/jdk-16/slim/docker-entrypoint.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# If the first arg starts with a hyphen, prepend abcl to arguments.
+if [ "${1#-}" != "$1" ]; then
+	set -- abcl "$@"
+fi
+
+exec "$@"
diff --git a/1.8.0/bullseye/jdk-8/Dockerfile b/1.8.0/bullseye/jdk-8/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..017c1a77fbe6420ea9394a30f267b6d7de4039fb
--- /dev/null
+++ b/1.8.0/bullseye/jdk-8/Dockerfile
@@ -0,0 +1,141 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+FROM openjdk:8-jdk-bullseye
+
+# Install the packages that buildpack-deps adds on top of
+# buildpack-deps:scm. This is a bit odd for a JVM based image, but the CFFI
+# project is commonly used and requires a compiler, headers, etc. Additionally,
+# this gives a more uniform experience between the different cl-docker-images
+# project's images.
+RUN set -ex; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        autoconf \
+        automake \
+        bzip2 \
+        default-libmysqlclient-dev \
+        dpkg-dev \
+        file \
+        g++ \
+        gcc \
+        imagemagick \
+        libbz2-dev \
+        libc6-dev \
+        libcurl4-openssl-dev \
+        libdb-dev \
+        libevent-dev \
+        libffi-dev \
+        libgdbm-dev \
+        libglib2.0-dev \
+        libgmp-dev \
+        libjpeg-dev \
+        libkrb5-dev \
+        liblzma-dev \
+        libmagickcore-dev \
+        libmagickwand-dev \
+        libmaxminddb-dev \
+        libncurses5-dev \
+        libncursesw5-dev \
+        libpng-dev \
+        libpq-dev \
+        libreadline-dev \
+        libsqlite3-dev \
+        libssl-dev \
+        libtool \
+        libwebp-dev \
+        libxml2-dev \
+        libxslt-dev \
+        libyaml-dev \
+        make \
+        patch \
+        unzip \
+        xz-utils \
+        zlib1g-dev \
+        \
+    ; \
+    rm -rf /var/lib/apt/lists/*
+
+# Install Maven as it is commonly used with ABCL, including with anything that
+# uses CFFI. We install it ourselves instead of basing the image off of maven
+# because the maven image only follows openjdk's default OS choice and does not
+# provide Debian based images for jdk12+.
+
+ARG MAVEN_VERSION=3.8.2
+ARG MAVEN_SHA=b0bf39460348b2d8eae1c861ced6c3e8a077b6e761fb3d4669be5de09490521a74db294cf031b0775b2dfcd57bd82246e42ce10904063ef8e3806222e686f222
+
+WORKDIR /usr/share/maven
+
+RUN curl -fsSL https://apache.osuosl.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz > /tmp/apache-maven.tar.gz \
+  && echo "${MAVEN_SHA}  /tmp/apache-maven.tar.gz" | sha512sum -c - \
+  && tar -xzf /tmp/apache-maven.tar.gz --strip-components=1 \
+  && rm -f /tmp/apache-maven.tar.gz \
+  && ln -s /usr/share/maven/bin/mvn /usr/bin/mvn
+
+ENV MAVEN_HOME /usr/share/maven
+
+# Now install ABCL
+
+ENV ABCL_VERSION 1.8.0
+
+WORKDIR /usr/local/share/
+
+ENV ABCL_SIGNING_KEY 5491D207FF9ECDE0BEA277772A9641104DB1773D
+
+RUN set -x \
+    && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz" > "abcl-bin-${ABCL_VERSION}.tar.gz" \
+    && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz.asc" > "abcl-bin-${ABCL_VERSION}.tar.gz.asc" \
+    && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-src-${ABCL_VERSION}.tar.gz" > "abcl-src-${ABCL_VERSION}.tar.gz" \
+    && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-src-${ABCL_VERSION}.tar.gz.asc" > "abcl-src-${ABCL_VERSION}.tar.gz.asc" \
+    && GNUPGHOME="$(mktemp -d)" \
+    && export GNUPGHOME \
+    && gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "${ABCL_SIGNING_KEY}" \
+    && gpg --batch --verify "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar.gz" \
+    && gpg --batch --verify "abcl-src-${ABCL_VERSION}.tar.gz.asc" "abcl-src-${ABCL_VERSION}.tar.gz" \
+    && gunzip "abcl-bin-${ABCL_VERSION}.tar.gz" \
+    && tar xf "abcl-bin-${ABCL_VERSION}.tar" \
+    && gunzip "abcl-src-${ABCL_VERSION}.tar.gz" \
+    && tar xf "abcl-src-${ABCL_VERSION}.tar" \
+    && mv "abcl-bin-${ABCL_VERSION}" abcl \
+    && mkdir -p /usr/local/src \
+    && mv "abcl-src-${ABCL_VERSION}" /usr/local/src/abcl/ \
+    && rm -rf "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar" "abcl-src-${ABCL_VERSION}.tar.gz.asc" "abcl-src-${ABCL_VERSION}.tar" "$GNUPGHOME" \
+    && java -jar /usr/local/share/abcl/abcl.jar --batch --eval '(print (multiple-value-list (lisp-implementation-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 keyserver.ubuntu.com --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 abcl-wrapper /usr/local/bin/abcl
+COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
+
+ENTRYPOINT ["docker-entrypoint.sh"]
+
+CMD ["abcl"]
diff --git a/1.8.0/bullseye/jdk-8/abcl-wrapper b/1.8.0/bullseye/jdk-8/abcl-wrapper
new file mode 100755
index 0000000000000000000000000000000000000000..033e29a36854202544bbebe1b3a5bedcc6247fd1
--- /dev/null
+++ b/1.8.0/bullseye/jdk-8/abcl-wrapper
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+exec java -cp "/usr/local/share/abcl/abcl.jar:$CLASSPATH" \
+     -XshowSettings:vm -Dfile.encoding=UTF-8 \
+     -XX:+UseG1GC -XX:+AggressiveOpts -XX:CompileThreshold=10 \
+     org.armedbear.lisp.Main \
+     "$@"
diff --git a/1.8.0/bullseye/jdk-8/docker-entrypoint.sh b/1.8.0/bullseye/jdk-8/docker-entrypoint.sh
new file mode 100755
index 0000000000000000000000000000000000000000..7f6b5a34d7349c9fbeb8f116018e075bb257005d
--- /dev/null
+++ b/1.8.0/bullseye/jdk-8/docker-entrypoint.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# If the first arg starts with a hyphen, prepend abcl to arguments.
+if [ "${1#-}" != "$1" ]; then
+	set -- abcl "$@"
+fi
+
+exec "$@"
diff --git a/1.8.0/bullseye/jdk-8/install-quicklisp b/1.8.0/bullseye/jdk-8/install-quicklisp
new file mode 100755
index 0000000000000000000000000000000000000000..ae80aa54dd8c444805e3b99ebe3251f4ae4429f0
--- /dev/null
+++ b/1.8.0/bullseye/jdk-8/install-quicklisp
@@ -0,0 +1,18 @@
+#!/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
+
+abcl --batch \
+     --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)))"
diff --git a/1.8.0/bullseye/jdk-8/slim/Dockerfile b/1.8.0/bullseye/jdk-8/slim/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..fceec29f4b57a73550d1b9dc88525afc9229ce92
--- /dev/null
+++ b/1.8.0/bullseye/jdk-8/slim/Dockerfile
@@ -0,0 +1,42 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+FROM openjdk:8-jdk-slim-bullseye
+
+ENV ABCL_VERSION 1.8.0
+
+WORKDIR /usr/local/share/
+
+ENV ABCL_SIGNING_KEY 5491D207FF9ECDE0BEA277772A9641104DB1773D
+
+RUN set -x \
+    # Install fetch deps
+    && apt-get update \
+    && apt-get install --no-install-recommends -y curl gnupg dirmngr \
+    && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz" > "abcl-bin-${ABCL_VERSION}.tar.gz" \
+    && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz.asc" > "abcl-bin-${ABCL_VERSION}.tar.gz.asc" \
+    && GNUPGHOME="$(mktemp -d)" \
+    && export GNUPGHOME \
+    && gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "${ABCL_SIGNING_KEY}" \
+    && gpg --batch --verify "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar.gz" \
+    && gunzip "abcl-bin-${ABCL_VERSION}.tar.gz" \
+    && tar xf "abcl-bin-${ABCL_VERSION}.tar" \
+    && mv "abcl-bin-${ABCL_VERSION}" abcl \
+    && rm -rf "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar" "$GNUPGHOME" \
+    # Remove fetch deps
+    && apt-get remove -y curl gnupg dirmngr \
+    && apt-get autoremove -y \
+    && rm -rf /var/lib/apt/lists/* \
+    # Smoke test ABCL.
+    && java -jar /usr/local/share/abcl/abcl.jar --batch --eval '(print (multiple-value-list (lisp-implementation-version)))'
+
+WORKDIR /
+
+COPY abcl-wrapper /usr/local/bin/abcl
+COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
+
+ENTRYPOINT ["docker-entrypoint.sh"]
+
+CMD ["abcl"]
diff --git a/1.8.0/bullseye/jdk-8/slim/abcl-wrapper b/1.8.0/bullseye/jdk-8/slim/abcl-wrapper
new file mode 100755
index 0000000000000000000000000000000000000000..033e29a36854202544bbebe1b3a5bedcc6247fd1
--- /dev/null
+++ b/1.8.0/bullseye/jdk-8/slim/abcl-wrapper
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+exec java -cp "/usr/local/share/abcl/abcl.jar:$CLASSPATH" \
+     -XshowSettings:vm -Dfile.encoding=UTF-8 \
+     -XX:+UseG1GC -XX:+AggressiveOpts -XX:CompileThreshold=10 \
+     org.armedbear.lisp.Main \
+     "$@"
diff --git a/1.8.0/bullseye/jdk-8/slim/docker-entrypoint.sh b/1.8.0/bullseye/jdk-8/slim/docker-entrypoint.sh
new file mode 100755
index 0000000000000000000000000000000000000000..7f6b5a34d7349c9fbeb8f116018e075bb257005d
--- /dev/null
+++ b/1.8.0/bullseye/jdk-8/slim/docker-entrypoint.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# If the first arg starts with a hyphen, prepend abcl to arguments.
+if [ "${1#-}" != "$1" ]; then
+	set -- abcl "$@"
+fi
+
+exec "$@"
diff --git a/1.8.0/buster/jdk-11/Dockerfile b/1.8.0/buster/jdk-11/Dockerfile
index 690062b6425b49e0c6caab6825aeedbb3094f7f1..705d1a1082cc6bc7ba436a120f45fe8987dd3225 100644
--- a/1.8.0/buster/jdk-11/Dockerfile
+++ b/1.8.0/buster/jdk-11/Dockerfile
@@ -61,10 +61,10 @@ RUN set -ex; \
 # Install Maven as it is commonly used with ABCL, including with anything that
 # uses CFFI. We install it ourselves instead of basing the image off of maven
 # because the maven image only follows openjdk's default OS choice and does not
-# provide buster based images for jdk12+.
+# provide Debian based images for jdk12+.
 
-ARG MAVEN_VERSION=3.6.3
-ARG MAVEN_SHA=c35a1803a6e70a126e80b2b3ae33eed961f83ed74d18fcd16909b2d44d7dada3203f1ffe726c17ef8dcca2dcaa9fca676987befeadc9b9f759967a8cb77181c0
+ARG MAVEN_VERSION=3.8.2
+ARG MAVEN_SHA=b0bf39460348b2d8eae1c861ced6c3e8a077b6e761fb3d4669be5de09490521a74db294cf031b0775b2dfcd57bd82246e42ce10904063ef8e3806222e686f222
 
 WORKDIR /usr/share/maven
 
@@ -91,7 +91,7 @@ RUN set -x \
     && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-src-${ABCL_VERSION}.tar.gz.asc" > "abcl-src-${ABCL_VERSION}.tar.gz.asc" \
     && GNUPGHOME="$(mktemp -d)" \
     && export GNUPGHOME \
-    && gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "${ABCL_SIGNING_KEY}" \
+    && gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "${ABCL_SIGNING_KEY}" \
     && gpg --batch --verify "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar.gz" \
     && gpg --batch --verify "abcl-src-${ABCL_VERSION}.tar.gz.asc" "abcl-src-${ABCL_VERSION}.tar.gz" \
     && gunzip "abcl-bin-${ABCL_VERSION}.tar.gz" \
@@ -114,7 +114,7 @@ RUN set -x \
     && 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 --keyserver keyserver.ubuntu.com --recv-keys "${QUICKLISP_SIGNING_KEY}" \
     && gpg --batch --verify "quicklisp.lisp.asc" "quicklisp.lisp" \
     && rm quicklisp.lisp.asc \
     && rm -rf "$GNUPGHOME"
diff --git a/1.8.0/buster/jdk-11/slim/Dockerfile b/1.8.0/buster/jdk-11/slim/Dockerfile
index eb42cf01d339085bf2fca41dc9a219211fbf157e..024aa5a9088953c9df31dc41dd8752584a49e215 100644
--- a/1.8.0/buster/jdk-11/slim/Dockerfile
+++ b/1.8.0/buster/jdk-11/slim/Dockerfile
@@ -19,7 +19,7 @@ RUN set -x \
     && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz.asc" > "abcl-bin-${ABCL_VERSION}.tar.gz.asc" \
     && GNUPGHOME="$(mktemp -d)" \
     && export GNUPGHOME \
-    && gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "${ABCL_SIGNING_KEY}" \
+    && gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "${ABCL_SIGNING_KEY}" \
     && gpg --batch --verify "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar.gz" \
     && gunzip "abcl-bin-${ABCL_VERSION}.tar.gz" \
     && tar xf "abcl-bin-${ABCL_VERSION}.tar" \
diff --git a/1.8.0/buster/jdk-16/Dockerfile b/1.8.0/buster/jdk-16/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..28f1d49ad5765766196c583c0c9f58fb871ac92a
--- /dev/null
+++ b/1.8.0/buster/jdk-16/Dockerfile
@@ -0,0 +1,141 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+FROM openjdk:16-jdk-buster
+
+# Install the packages that buildpack-deps adds on top of
+# buildpack-deps:scm. This is a bit odd for a JVM based image, but the CFFI
+# project is commonly used and requires a compiler, headers, etc. Additionally,
+# this gives a more uniform experience between the different cl-docker-images
+# project's images.
+RUN set -ex; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        autoconf \
+        automake \
+        bzip2 \
+        default-libmysqlclient-dev \
+        dpkg-dev \
+        file \
+        g++ \
+        gcc \
+        imagemagick \
+        libbz2-dev \
+        libc6-dev \
+        libcurl4-openssl-dev \
+        libdb-dev \
+        libevent-dev \
+        libffi-dev \
+        libgdbm-dev \
+        libglib2.0-dev \
+        libgmp-dev \
+        libjpeg-dev \
+        libkrb5-dev \
+        liblzma-dev \
+        libmagickcore-dev \
+        libmagickwand-dev \
+        libmaxminddb-dev \
+        libncurses5-dev \
+        libncursesw5-dev \
+        libpng-dev \
+        libpq-dev \
+        libreadline-dev \
+        libsqlite3-dev \
+        libssl-dev \
+        libtool \
+        libwebp-dev \
+        libxml2-dev \
+        libxslt-dev \
+        libyaml-dev \
+        make \
+        patch \
+        unzip \
+        xz-utils \
+        zlib1g-dev \
+        \
+    ; \
+    rm -rf /var/lib/apt/lists/*
+
+# Install Maven as it is commonly used with ABCL, including with anything that
+# uses CFFI. We install it ourselves instead of basing the image off of maven
+# because the maven image only follows openjdk's default OS choice and does not
+# provide Debian based images for jdk12+.
+
+ARG MAVEN_VERSION=3.8.2
+ARG MAVEN_SHA=b0bf39460348b2d8eae1c861ced6c3e8a077b6e761fb3d4669be5de09490521a74db294cf031b0775b2dfcd57bd82246e42ce10904063ef8e3806222e686f222
+
+WORKDIR /usr/share/maven
+
+RUN curl -fsSL https://apache.osuosl.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz > /tmp/apache-maven.tar.gz \
+  && echo "${MAVEN_SHA}  /tmp/apache-maven.tar.gz" | sha512sum -c - \
+  && tar -xzf /tmp/apache-maven.tar.gz --strip-components=1 \
+  && rm -f /tmp/apache-maven.tar.gz \
+  && ln -s /usr/share/maven/bin/mvn /usr/bin/mvn
+
+ENV MAVEN_HOME /usr/share/maven
+
+# Now install ABCL
+
+ENV ABCL_VERSION 1.8.0
+
+WORKDIR /usr/local/share/
+
+ENV ABCL_SIGNING_KEY 5491D207FF9ECDE0BEA277772A9641104DB1773D
+
+RUN set -x \
+    && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz" > "abcl-bin-${ABCL_VERSION}.tar.gz" \
+    && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz.asc" > "abcl-bin-${ABCL_VERSION}.tar.gz.asc" \
+    && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-src-${ABCL_VERSION}.tar.gz" > "abcl-src-${ABCL_VERSION}.tar.gz" \
+    && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-src-${ABCL_VERSION}.tar.gz.asc" > "abcl-src-${ABCL_VERSION}.tar.gz.asc" \
+    && GNUPGHOME="$(mktemp -d)" \
+    && export GNUPGHOME \
+    && gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "${ABCL_SIGNING_KEY}" \
+    && gpg --batch --verify "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar.gz" \
+    && gpg --batch --verify "abcl-src-${ABCL_VERSION}.tar.gz.asc" "abcl-src-${ABCL_VERSION}.tar.gz" \
+    && gunzip "abcl-bin-${ABCL_VERSION}.tar.gz" \
+    && tar xf "abcl-bin-${ABCL_VERSION}.tar" \
+    && gunzip "abcl-src-${ABCL_VERSION}.tar.gz" \
+    && tar xf "abcl-src-${ABCL_VERSION}.tar" \
+    && mv "abcl-bin-${ABCL_VERSION}" abcl \
+    && mkdir -p /usr/local/src \
+    && mv "abcl-src-${ABCL_VERSION}" /usr/local/src/abcl/ \
+    && rm -rf "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar" "abcl-src-${ABCL_VERSION}.tar.gz.asc" "abcl-src-${ABCL_VERSION}.tar" "$GNUPGHOME" \
+    && java -jar /usr/local/share/abcl/abcl.jar --batch --eval '(print (multiple-value-list (lisp-implementation-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 keyserver.ubuntu.com --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 abcl-wrapper /usr/local/bin/abcl
+COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
+
+ENTRYPOINT ["docker-entrypoint.sh"]
+
+CMD ["abcl"]
diff --git a/1.8.0/buster/jdk-16/abcl-wrapper b/1.8.0/buster/jdk-16/abcl-wrapper
new file mode 100755
index 0000000000000000000000000000000000000000..da76f04365f54d85863e4bd70e3f934c3c21c6d0
--- /dev/null
+++ b/1.8.0/buster/jdk-16/abcl-wrapper
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+exec java -cp "/usr/local/share/abcl/abcl.jar:$CLASSPATH" \
+     -XshowSettings:vm -Dfile.encoding=UTF-8 \
+     -XX:CompileThreshold=10 \
+     org.armedbear.lisp.Main \
+     "$@"
diff --git a/1.8.0/buster/jdk-16/docker-entrypoint.sh b/1.8.0/buster/jdk-16/docker-entrypoint.sh
new file mode 100755
index 0000000000000000000000000000000000000000..7f6b5a34d7349c9fbeb8f116018e075bb257005d
--- /dev/null
+++ b/1.8.0/buster/jdk-16/docker-entrypoint.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# If the first arg starts with a hyphen, prepend abcl to arguments.
+if [ "${1#-}" != "$1" ]; then
+	set -- abcl "$@"
+fi
+
+exec "$@"
diff --git a/1.8.0/buster/jdk-16/install-quicklisp b/1.8.0/buster/jdk-16/install-quicklisp
new file mode 100755
index 0000000000000000000000000000000000000000..ae80aa54dd8c444805e3b99ebe3251f4ae4429f0
--- /dev/null
+++ b/1.8.0/buster/jdk-16/install-quicklisp
@@ -0,0 +1,18 @@
+#!/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
+
+abcl --batch \
+     --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)))"
diff --git a/1.8.0/buster/jdk-16/slim/Dockerfile b/1.8.0/buster/jdk-16/slim/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..fe35d5fc0d1344a34940c170b33187e29064bf81
--- /dev/null
+++ b/1.8.0/buster/jdk-16/slim/Dockerfile
@@ -0,0 +1,42 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+FROM openjdk:16-jdk-slim-buster
+
+ENV ABCL_VERSION 1.8.0
+
+WORKDIR /usr/local/share/
+
+ENV ABCL_SIGNING_KEY 5491D207FF9ECDE0BEA277772A9641104DB1773D
+
+RUN set -x \
+    # Install fetch deps
+    && apt-get update \
+    && apt-get install --no-install-recommends -y curl gnupg dirmngr \
+    && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz" > "abcl-bin-${ABCL_VERSION}.tar.gz" \
+    && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz.asc" > "abcl-bin-${ABCL_VERSION}.tar.gz.asc" \
+    && GNUPGHOME="$(mktemp -d)" \
+    && export GNUPGHOME \
+    && gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "${ABCL_SIGNING_KEY}" \
+    && gpg --batch --verify "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar.gz" \
+    && gunzip "abcl-bin-${ABCL_VERSION}.tar.gz" \
+    && tar xf "abcl-bin-${ABCL_VERSION}.tar" \
+    && mv "abcl-bin-${ABCL_VERSION}" abcl \
+    && rm -rf "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar" "$GNUPGHOME" \
+    # Remove fetch deps
+    && apt-get remove -y curl gnupg dirmngr \
+    && apt-get autoremove -y \
+    && rm -rf /var/lib/apt/lists/* \
+    # Smoke test ABCL.
+    && java -jar /usr/local/share/abcl/abcl.jar --batch --eval '(print (multiple-value-list (lisp-implementation-version)))'
+
+WORKDIR /
+
+COPY abcl-wrapper /usr/local/bin/abcl
+COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
+
+ENTRYPOINT ["docker-entrypoint.sh"]
+
+CMD ["abcl"]
diff --git a/1.8.0/buster/jdk-16/slim/abcl-wrapper b/1.8.0/buster/jdk-16/slim/abcl-wrapper
new file mode 100755
index 0000000000000000000000000000000000000000..da76f04365f54d85863e4bd70e3f934c3c21c6d0
--- /dev/null
+++ b/1.8.0/buster/jdk-16/slim/abcl-wrapper
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+exec java -cp "/usr/local/share/abcl/abcl.jar:$CLASSPATH" \
+     -XshowSettings:vm -Dfile.encoding=UTF-8 \
+     -XX:CompileThreshold=10 \
+     org.armedbear.lisp.Main \
+     "$@"
diff --git a/1.8.0/buster/jdk-16/slim/docker-entrypoint.sh b/1.8.0/buster/jdk-16/slim/docker-entrypoint.sh
new file mode 100755
index 0000000000000000000000000000000000000000..7f6b5a34d7349c9fbeb8f116018e075bb257005d
--- /dev/null
+++ b/1.8.0/buster/jdk-16/slim/docker-entrypoint.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# If the first arg starts with a hyphen, prepend abcl to arguments.
+if [ "${1#-}" != "$1" ]; then
+	set -- abcl "$@"
+fi
+
+exec "$@"
diff --git a/1.8.0/buster/jdk-8/Dockerfile b/1.8.0/buster/jdk-8/Dockerfile
index b3a48f328eb129bf87e9408ca23a08b65225ac73..6a076171428cd965fd2ffa4ef126cb1b9acc76d7 100644
--- a/1.8.0/buster/jdk-8/Dockerfile
+++ b/1.8.0/buster/jdk-8/Dockerfile
@@ -61,10 +61,10 @@ RUN set -ex; \
 # Install Maven as it is commonly used with ABCL, including with anything that
 # uses CFFI. We install it ourselves instead of basing the image off of maven
 # because the maven image only follows openjdk's default OS choice and does not
-# provide buster based images for jdk12+.
+# provide Debian based images for jdk12+.
 
-ARG MAVEN_VERSION=3.6.3
-ARG MAVEN_SHA=c35a1803a6e70a126e80b2b3ae33eed961f83ed74d18fcd16909b2d44d7dada3203f1ffe726c17ef8dcca2dcaa9fca676987befeadc9b9f759967a8cb77181c0
+ARG MAVEN_VERSION=3.8.2
+ARG MAVEN_SHA=b0bf39460348b2d8eae1c861ced6c3e8a077b6e761fb3d4669be5de09490521a74db294cf031b0775b2dfcd57bd82246e42ce10904063ef8e3806222e686f222
 
 WORKDIR /usr/share/maven
 
@@ -91,7 +91,7 @@ RUN set -x \
     && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-src-${ABCL_VERSION}.tar.gz.asc" > "abcl-src-${ABCL_VERSION}.tar.gz.asc" \
     && GNUPGHOME="$(mktemp -d)" \
     && export GNUPGHOME \
-    && gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "${ABCL_SIGNING_KEY}" \
+    && gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "${ABCL_SIGNING_KEY}" \
     && gpg --batch --verify "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar.gz" \
     && gpg --batch --verify "abcl-src-${ABCL_VERSION}.tar.gz.asc" "abcl-src-${ABCL_VERSION}.tar.gz" \
     && gunzip "abcl-bin-${ABCL_VERSION}.tar.gz" \
@@ -114,7 +114,7 @@ RUN set -x \
     && 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 --keyserver keyserver.ubuntu.com --recv-keys "${QUICKLISP_SIGNING_KEY}" \
     && gpg --batch --verify "quicklisp.lisp.asc" "quicklisp.lisp" \
     && rm quicklisp.lisp.asc \
     && rm -rf "$GNUPGHOME"
diff --git a/1.8.0/buster/jdk-8/slim/Dockerfile b/1.8.0/buster/jdk-8/slim/Dockerfile
index 24717ca6f0306533cb3e59cf56e7be2a034878ad..33733408eafcb8d1dc284478493c73b0d8a10e3c 100644
--- a/1.8.0/buster/jdk-8/slim/Dockerfile
+++ b/1.8.0/buster/jdk-8/slim/Dockerfile
@@ -19,7 +19,7 @@ RUN set -x \
     && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz.asc" > "abcl-bin-${ABCL_VERSION}.tar.gz.asc" \
     && GNUPGHOME="$(mktemp -d)" \
     && export GNUPGHOME \
-    && gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "${ABCL_SIGNING_KEY}" \
+    && gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "${ABCL_SIGNING_KEY}" \
     && gpg --batch --verify "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar.gz" \
     && gunzip "abcl-bin-${ABCL_VERSION}.tar.gz" \
     && tar xf "abcl-bin-${ABCL_VERSION}.tar" \
diff --git a/1.8.0/windowsservercore-1809/jdk-15/Dockerfile b/1.8.0/windowsservercore-1809/jdk-16/Dockerfile
similarity index 97%
rename from 1.8.0/windowsservercore-1809/jdk-15/Dockerfile
rename to 1.8.0/windowsservercore-1809/jdk-16/Dockerfile
index 24d2f6f35e15f005773a4c9603ece5e0c7a06c71..7b16252ab20a064173420ba82b4c9308bb08980b 100644
--- a/1.8.0/windowsservercore-1809/jdk-15/Dockerfile
+++ b/1.8.0/windowsservercore-1809/jdk-16/Dockerfile
@@ -3,7 +3,7 @@
 #
 # PLEASE DO NOT EDIT IT DIRECTLY.
 #
-FROM openjdk:15-jdk-windowsservercore-1809
+FROM openjdk:16-jdk-windowsservercore-1809
 
 SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
 
diff --git a/1.8.0/windowsservercore-1809/jdk-15/abcl-wrapper.bat b/1.8.0/windowsservercore-1809/jdk-16/abcl-wrapper.bat
similarity index 100%
rename from 1.8.0/windowsservercore-1809/jdk-15/abcl-wrapper.bat
rename to 1.8.0/windowsservercore-1809/jdk-16/abcl-wrapper.bat
diff --git a/1.8.0/windowsservercore-ltsc2016/jdk-15/Dockerfile b/1.8.0/windowsservercore-ltsc2016/jdk-16/Dockerfile
similarity index 96%
rename from 1.8.0/windowsservercore-ltsc2016/jdk-15/Dockerfile
rename to 1.8.0/windowsservercore-ltsc2016/jdk-16/Dockerfile
index fc608b4cebd72efde8a5430bb74c6bb0a28ef226..2b1aefb8a7b287b28e07468df8f401dfdb749101 100644
--- a/1.8.0/windowsservercore-ltsc2016/jdk-15/Dockerfile
+++ b/1.8.0/windowsservercore-ltsc2016/jdk-16/Dockerfile
@@ -3,7 +3,7 @@
 #
 # PLEASE DO NOT EDIT IT DIRECTLY.
 #
-FROM openjdk:15-jdk-windowsservercore-ltsc2016
+FROM openjdk:16-jdk-windowsservercore-ltsc2016
 
 SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
 
diff --git a/1.8.0/windowsservercore-ltsc2016/jdk-15/abcl-wrapper.bat b/1.8.0/windowsservercore-ltsc2016/jdk-16/abcl-wrapper.bat
similarity index 100%
rename from 1.8.0/windowsservercore-ltsc2016/jdk-15/abcl-wrapper.bat
rename to 1.8.0/windowsservercore-ltsc2016/jdk-16/abcl-wrapper.bat
diff --git a/Dockerfile-apt-nightly.template b/Dockerfile-apt-nightly.template
index af9d5958b8d2aa22bad49ef25e105d957f6c6050..02e2f2a8362e3ed388cb7ae7ae38caa5c48aa6a6 100644
--- a/Dockerfile-apt-nightly.template
+++ b/Dockerfile-apt-nightly.template
@@ -56,10 +56,10 @@ RUN set -ex; \
 # Install Maven as it is commonly used with ABCL, including with anything that
 # uses CFFI. We install it ourselves instead of basing the image off of maven
 # because the maven image only follows openjdk's default OS choice and does not
-# provide buster based images for jdk12+.
+# provide Debian based images for jdk12+.
 
-ARG MAVEN_VERSION=3.6.3
-ARG MAVEN_SHA=c35a1803a6e70a126e80b2b3ae33eed961f83ed74d18fcd16909b2d44d7dada3203f1ffe726c17ef8dcca2dcaa9fca676987befeadc9b9f759967a8cb77181c0
+ARG MAVEN_VERSION=3.8.2
+ARG MAVEN_SHA=b0bf39460348b2d8eae1c861ced6c3e8a077b6e761fb3d4669be5de09490521a74db294cf031b0775b2dfcd57bd82246e42ce10904063ef8e3806222e686f222
 
 WORKDIR /usr/share/maven
 
@@ -107,7 +107,7 @@ RUN set -x \
     && 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 --keyserver keyserver.ubuntu.com --recv-keys "${QUICKLISP_SIGNING_KEY}" \
     && gpg --batch --verify "quicklisp.lisp.asc" "quicklisp.lisp" \
     && rm quicklisp.lisp.asc \
     && rm -rf "$GNUPGHOME"
diff --git a/Dockerfile-apt-slim.template b/Dockerfile-apt-slim.template
index e05dcd39e272c70bcca7116f2869e734df5c2d6d..c9969a2ac569b0a22a7ba428b94f9348510eff77 100644
--- a/Dockerfile-apt-slim.template
+++ b/Dockerfile-apt-slim.template
@@ -14,7 +14,7 @@ RUN set -x \
     && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz.asc" > "abcl-bin-${ABCL_VERSION}.tar.gz.asc" \
     && GNUPGHOME="$(mktemp -d)" \
     && export GNUPGHOME \
-    && gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "${ABCL_SIGNING_KEY}" \
+    && gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "${ABCL_SIGNING_KEY}" \
     && gpg --batch --verify "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar.gz" \
     && gunzip "abcl-bin-${ABCL_VERSION}.tar.gz" \
     && tar xf "abcl-bin-${ABCL_VERSION}.tar" \
diff --git a/Dockerfile-apt.template b/Dockerfile-apt.template
index 96ca344310242eab586b986b18ae5eb8d6f068d3..0099ff97d66e7e27869b0c51cd79d5819f0d7779 100644
--- a/Dockerfile-apt.template
+++ b/Dockerfile-apt.template
@@ -59,7 +59,7 @@ RUN set -ex; \
 # provide Debian based images for jdk12+.
 
 ARG MAVEN_VERSION=3.8.2
-ARG MAVEN_SHA=c35a1803a6e70a126e80b2b3ae33eed961f83ed74d18fcd16909b2d44d7dada3203f1ffe726c17ef8dcca2dcaa9fca676987befeadc9b9f759967a8cb77181c0
+ARG MAVEN_SHA=b0bf39460348b2d8eae1c861ced6c3e8a077b6e761fb3d4669be5de09490521a74db294cf031b0775b2dfcd57bd82246e42ce10904063ef8e3806222e686f222
 
 WORKDIR /usr/share/maven
 
@@ -86,7 +86,7 @@ RUN set -x \
     && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-src-${ABCL_VERSION}.tar.gz.asc" > "abcl-src-${ABCL_VERSION}.tar.gz.asc" \
     && GNUPGHOME="$(mktemp -d)" \
     && export GNUPGHOME \
-    && gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "${ABCL_SIGNING_KEY}" \
+    && gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "${ABCL_SIGNING_KEY}" \
     && gpg --batch --verify "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar.gz" \
     && gpg --batch --verify "abcl-src-${ABCL_VERSION}.tar.gz.asc" "abcl-src-${ABCL_VERSION}.tar.gz" \
     && gunzip "abcl-bin-${ABCL_VERSION}.tar.gz" \
@@ -109,7 +109,7 @@ RUN set -x \
     && 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 --keyserver keyserver.ubuntu.com --recv-keys "${QUICKLISP_SIGNING_KEY}" \
     && gpg --batch --verify "quicklisp.lisp.asc" "quicklisp.lisp" \
     && rm quicklisp.lisp.asc \
     && rm -rf "$GNUPGHOME"
diff --git a/abcl-wrapper-jdk16 b/abcl-wrapper-jdk16
new file mode 100755
index 0000000000000000000000000000000000000000..da76f04365f54d85863e4bd70e3f934c3c21c6d0
--- /dev/null
+++ b/abcl-wrapper-jdk16
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+exec java -cp "/usr/local/share/abcl/abcl.jar:$CLASSPATH" \
+     -XshowSettings:vm -Dfile.encoding=UTF-8 \
+     -XX:CompileThreshold=10 \
+     org.armedbear.lisp.Main \
+     "$@"
diff --git a/abcl-wrapper-jdk15.bat b/abcl-wrapper-jdk16.bat
similarity index 100%
rename from abcl-wrapper-jdk15.bat
rename to abcl-wrapper-jdk16.bat
diff --git a/generate-stackbrew-library.sh b/generate-stackbrew-library.sh
index 7af33b638b7be1bfb83bc4bad1209980e88f23c6..5bf68c391d00b10880640784be77d5e6b85bf0bb 100755
--- a/generate-stackbrew-library.sh
+++ b/generate-stackbrew-library.sh
@@ -6,23 +6,22 @@ declare -A aliases=(
     [1.7.1]='1.7'
 )
 
-defaultDebianSuite='buster'
-defaultJavaVersion='15'
+defaultDebianSuite='bullseye'
+defaultJavaVersion='16'
 
 self="$(basename "$BASH_SOURCE")"
 cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
 
-if [ "${1-unset}" = "nightly" ]; then
-    versions=( nightly )
-    aliases[nightly]="$(grep -e "^ENV ABCL_COMMIT" nightly/buster/jdk-11/Dockerfile | cut -d" " -f 3 | head -c 7)"
+if [ "${1-unset}" = "rc" ]; then
+    versions=( *rc/ )
+    versions=( "${versions[@]%/}" )
 elif [ "${1-unset}" = "all" ]; then
     versions=( */ )
     versions=( "${versions[@]%/}" )
-    aliases[nightly]="$(grep -e "^ENV ABCL_COMMIT" nightly/buster/jdk-11/Dockerfile | cut -d" " -f 3 | head -c 7)"
 else
     versions=( */ )
     versions=( "${versions[@]%/}" )
-    versions=( "${versions[@]/nightly}" )
+    versions=( "${versions[@]%%*rc}" )
 fi
 
 # sort version numbers with highest first
@@ -82,8 +81,9 @@ join() {
 for version in "${versions[@]}"; do
 
     for v in \
-        buster/{jdk-15,jdk-11,jdk-8}/{,slim} \
-        windowsservercore-{1809,ltsc2016}/{jdk-15,jdk-11,jdk-8}/ \
+        bullseye/{jdk-16,jdk-11,jdk-8}/{,slim} \
+        buster/{jdk-16,jdk-11,jdk-8}/{,slim} \
+        windowsservercore-{1809,ltsc2016}/{jdk-16,jdk-11,jdk-8}/ \
     ; do
         os="${v%%/*}"
         javaVariant="${v%/*}"
@@ -100,7 +100,7 @@ for version in "${versions[@]}"; do
 
         dir="$version/$v"
 
-        if [ "$version" = "nightly" ] && [[ "$os" == "windowsservercore"* ]]; then
+        if [[ $version == *rc ]] && [[ "$os" == "windowsservercore"* ]]; then
             continue
         fi
 
diff --git a/update.sh b/update.sh
index 474de04a0419914b6dbdee7c96dac2e52c0530f7..f4f4288ee55460c9822d831439dca1dbc81677e6 100755
--- a/update.sh
+++ b/update.sh
@@ -3,6 +3,10 @@ set -Eeuo pipefail
 
 cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
 
+declare -A refs=(
+    [1.8.1]='master'
+)
+
 versions=( "$@" )
 
 generated_warning() {
@@ -17,7 +21,7 @@ EOH
 
 for version in "${versions[@]}"; do
 
-    if [ "$version" = "nightly" ]; then
+    if [[ $version = *rc ]]; then
         abclGitSha="$(curl -fsSL https://api.github.com/repos/armedbear/abcl/commits/master | jq -r .sha)"
         unset abclBinZipUrl
         unset abclBinZipSha
@@ -28,8 +32,9 @@ for version in "${versions[@]}"; do
     fi
 
     for v in \
-        buster/{jdk-15,jdk-11,jdk-8}/{,slim} \
-        windowsservercore-{1809,ltsc2016}/{jdk-15,jdk-11,jdk-8}/ \
+        bullseye/{jdk-16,jdk-11,jdk-8}/{,slim} \
+        buster/{jdk-16,jdk-11,jdk-8}/{,slim} \
+        windowsservercore-{1809,ltsc2016}/{jdk-16,jdk-11,jdk-8}/ \
     ; do
         os="${v%%/*}"
         javaVariant="${v%/*}"
@@ -46,14 +51,14 @@ for version in "${versions[@]}"; do
 
         dir="$version/$v"
 
-        if [ "$version" = "nightly" ] && [[ "$os" == "windowsservercore"* ]]; then
+        if [[ $version == *rc ]] && [[ "$os" == "windowsservercore"* ]]; then
             continue
         fi
 
         mkdir -p "$dir"
 
         case "$os" in
-            buster)
+            bullseye|buster)
                 template="apt$variantTag"
                 cp "abcl-wrapper-jdk$javaVersion" "$dir/abcl-wrapper"
                 cp docker-entrypoint.sh "$dir/docker-entrypoint.sh"
@@ -67,7 +72,7 @@ for version in "${versions[@]}"; do
                 ;;
         esac
 
-        if [ "$version" = "nightly" ]; then
+        if [[ $version == *rc ]]; then
             template="$template-nightly"
         fi
 
@@ -76,7 +81,7 @@ for version in "${versions[@]}"; do
 
         { generated_warning; cat "$template"; } > "$dir/Dockerfile"
 
-        if [ "$version" = "nightly" ]; then
+        if [[ $version == *rc ]]; then
             sed -ri \
                 -e 's/^(FROM) .*/\1 '"openjdk:$tag"'/' \
                 -e 's/^(ENV ABCL_COMMIT) .*/\1 '"$abclGitSha"'/' \