From 1609aa7733b67828ecb10c44339389e500d3f97c Mon Sep 17 00:00:00 2001 From: Eric Timmons <etimmons@mit.edu> Date: Sun, 29 Nov 2020 16:32:20 -0500 Subject: [PATCH] Add the quicklisp installer to fat images --- 1.7.1/buster/jdk-11/Dockerfile | 16 +++++++++ 1.7.1/buster/jdk-15/Dockerfile | 16 +++++++++ 1.7.1/buster/jdk-8/Dockerfile | 16 +++++++++ 1.8.0/buster/jdk-11/Dockerfile | 16 +++++++++ 1.8.0/buster/jdk-15/Dockerfile | 16 +++++++++ 1.8.0/buster/jdk-8/Dockerfile | 16 +++++++++ Dockerfile-apt-nightly.template | 16 +++++++++ Dockerfile-apt.template | 16 +++++++++ hub-description-template.md | 58 +++++++++++++++++--------------- hub-description-template.org | 3 ++ nightly/buster/jdk-11/Dockerfile | 16 +++++++++ nightly/buster/jdk-15/Dockerfile | 16 +++++++++ nightly/buster/jdk-8/Dockerfile | 16 +++++++++ 13 files changed, 209 insertions(+), 28 deletions(-) diff --git a/1.7.1/buster/jdk-11/Dockerfile b/1.7.1/buster/jdk-11/Dockerfile index a25f201..fc10bdc 100644 --- a/1.7.1/buster/jdk-11/Dockerfile +++ b/1.7.1/buster/jdk-11/Dockerfile @@ -97,6 +97,22 @@ RUN set -x \ && rm -rf "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${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 ha.pool.sks-keyservers.net --recv-keys "${QUICKLISP_SIGNING_KEY}" \ + && gpg --batch --verify "quicklisp.lisp.asc" "quicklisp.lisp" \ + && rm quicklisp.lisp.asc \ + && rm -rf "$GNUPGHOME" + +# Add the entrypoint WORKDIR / COPY abcl-wrapper /usr/local/bin/abcl diff --git a/1.7.1/buster/jdk-15/Dockerfile b/1.7.1/buster/jdk-15/Dockerfile index 1dc8ec7..deeb2e6 100644 --- a/1.7.1/buster/jdk-15/Dockerfile +++ b/1.7.1/buster/jdk-15/Dockerfile @@ -97,6 +97,22 @@ RUN set -x \ && rm -rf "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${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 ha.pool.sks-keyservers.net --recv-keys "${QUICKLISP_SIGNING_KEY}" \ + && gpg --batch --verify "quicklisp.lisp.asc" "quicklisp.lisp" \ + && rm quicklisp.lisp.asc \ + && rm -rf "$GNUPGHOME" + +# Add the entrypoint WORKDIR / COPY abcl-wrapper /usr/local/bin/abcl diff --git a/1.7.1/buster/jdk-8/Dockerfile b/1.7.1/buster/jdk-8/Dockerfile index c4cc7e9..c90b8be 100644 --- a/1.7.1/buster/jdk-8/Dockerfile +++ b/1.7.1/buster/jdk-8/Dockerfile @@ -97,6 +97,22 @@ RUN set -x \ && rm -rf "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${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 ha.pool.sks-keyservers.net --recv-keys "${QUICKLISP_SIGNING_KEY}" \ + && gpg --batch --verify "quicklisp.lisp.asc" "quicklisp.lisp" \ + && rm quicklisp.lisp.asc \ + && rm -rf "$GNUPGHOME" + +# Add the entrypoint WORKDIR / COPY abcl-wrapper /usr/local/bin/abcl diff --git a/1.8.0/buster/jdk-11/Dockerfile b/1.8.0/buster/jdk-11/Dockerfile index afe6e68..e96d7bf 100644 --- a/1.8.0/buster/jdk-11/Dockerfile +++ b/1.8.0/buster/jdk-11/Dockerfile @@ -97,6 +97,22 @@ RUN set -x \ && rm -rf "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${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 ha.pool.sks-keyservers.net --recv-keys "${QUICKLISP_SIGNING_KEY}" \ + && gpg --batch --verify "quicklisp.lisp.asc" "quicklisp.lisp" \ + && rm quicklisp.lisp.asc \ + && rm -rf "$GNUPGHOME" + +# Add the entrypoint WORKDIR / COPY abcl-wrapper /usr/local/bin/abcl diff --git a/1.8.0/buster/jdk-15/Dockerfile b/1.8.0/buster/jdk-15/Dockerfile index 1e692d0..ffec559 100644 --- a/1.8.0/buster/jdk-15/Dockerfile +++ b/1.8.0/buster/jdk-15/Dockerfile @@ -97,6 +97,22 @@ RUN set -x \ && rm -rf "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${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 ha.pool.sks-keyservers.net --recv-keys "${QUICKLISP_SIGNING_KEY}" \ + && gpg --batch --verify "quicklisp.lisp.asc" "quicklisp.lisp" \ + && rm quicklisp.lisp.asc \ + && rm -rf "$GNUPGHOME" + +# Add the entrypoint WORKDIR / COPY abcl-wrapper /usr/local/bin/abcl diff --git a/1.8.0/buster/jdk-8/Dockerfile b/1.8.0/buster/jdk-8/Dockerfile index 5c50147..e1a7b50 100644 --- a/1.8.0/buster/jdk-8/Dockerfile +++ b/1.8.0/buster/jdk-8/Dockerfile @@ -97,6 +97,22 @@ RUN set -x \ && rm -rf "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${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 ha.pool.sks-keyservers.net --recv-keys "${QUICKLISP_SIGNING_KEY}" \ + && gpg --batch --verify "quicklisp.lisp.asc" "quicklisp.lisp" \ + && rm quicklisp.lisp.asc \ + && rm -rf "$GNUPGHOME" + +# Add the entrypoint WORKDIR / COPY abcl-wrapper /usr/local/bin/abcl diff --git a/Dockerfile-apt-nightly.template b/Dockerfile-apt-nightly.template index 11d3732..5f28769 100644 --- a/Dockerfile-apt-nightly.template +++ b/Dockerfile-apt-nightly.template @@ -96,6 +96,22 @@ RUN set -x \ && rm -rf abcl* ant* apache-ant* \ && java -jar /usr/local/share/abcl/abcl.jar --eval '(print (multiple-value-list (lisp-implementation-version)))' --eval '(quit)' +# Add the Quicklisp installer. +WORKDIR /usr/local/share/common-lisp/source/quicklisp/ + +ENV QUICKLISP_SIGNING_KEY D7A3489DDEFE32B7D0E7CC61307965AB028B5FF7 + +RUN set -x \ + && curl -fsSL "https://beta.quicklisp.org/quicklisp.lisp" > quicklisp.lisp \ + && curl -fsSL "https://beta.quicklisp.org/quicklisp.lisp.asc" > quicklisp.lisp.asc \ + && GNUPGHOME="$(mktemp -d)" \ + && export GNUPGHOME \ + && gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "${QUICKLISP_SIGNING_KEY}" \ + && gpg --batch --verify "quicklisp.lisp.asc" "quicklisp.lisp" \ + && rm quicklisp.lisp.asc \ + && rm -rf "$GNUPGHOME" + +# Add the entrypoint WORKDIR / COPY abcl-wrapper /usr/local/bin/abcl diff --git a/Dockerfile-apt.template b/Dockerfile-apt.template index a5530ea..cd6d368 100644 --- a/Dockerfile-apt.template +++ b/Dockerfile-apt.template @@ -92,6 +92,22 @@ RUN set -x \ && rm -rf "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${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 ha.pool.sks-keyservers.net --recv-keys "${QUICKLISP_SIGNING_KEY}" \ + && gpg --batch --verify "quicklisp.lisp.asc" "quicklisp.lisp" \ + && rm quicklisp.lisp.asc \ + && rm -rf "$GNUPGHOME" + +# Add the entrypoint WORKDIR / COPY abcl-wrapper /usr/local/bin/abcl diff --git a/hub-description-template.md b/hub-description-template.md index d07643f..74b741c 100644 --- a/hub-description-template.md +++ b/hub-description-template.md @@ -1,40 +1,40 @@ -- [Supported Tags](#org0446a11) - - [Simple Tags](#orgfe7680c) - - [Shared Tags](#orgeb911e0) -- [Quick Reference](#org99b24ac) -- [What is ABCL?](#org1537c8b) -- [How to use this iamge](#org164f89f) - - [Create a `Dockerfile` in your ABCL project](#org6ca2ff5) - - [Run a single Common Lisp script](#org0d774fc) - - [Developing using SLIME](#org4df881d) -- [Image variants](#org95c124a) - - [`%%IMAGE%%:<version>`](#org9a12ed3) - - [`%%IMAGE%%:<version>-slim`](#org98b4a96) - - [`%%IMAGE%%:<version>-windowsservercore`](#orgf106c12) -- [License](#orgbad5fc3) +- [Supported Tags](#org3b744b2) + - [Simple Tags](#org7e2384a) + - [Shared Tags](#orgf2a55eb) +- [Quick Reference](#org445ae84) +- [What is ABCL?](#orge513f25) +- [How to use this iamge](#org3557f4f) + - [Create a `Dockerfile` in your ABCL project](#org49dc377) + - [Run a single Common Lisp script](#orgf9fa139) + - [Developing using SLIME](#orga29cc9a) +- [Image variants](#org3be2955) + - [`%%IMAGE%%:<version>`](#orgcf6a78f) + - [`%%IMAGE%%:<version>-slim`](#org90b3a21) + - [`%%IMAGE%%:<version>-windowsservercore`](#org6d31197) +- [License](#orge1ad7f0) -<a id="org0446a11"></a> +<a id="org3b744b2"></a> # Supported Tags -<a id="orgfe7680c"></a> +<a id="org7e2384a"></a> ## Simple Tags INSERT-SIMPLE-TAGS -<a id="orgeb911e0"></a> +<a id="orgf2a55eb"></a> ## Shared Tags INSERT-SHARED-TAGS -<a id="org99b24ac"></a> +<a id="org445ae84"></a> # Quick Reference @@ -45,7 +45,7 @@ INSERT-SHARED-TAGS - **Supported platforms:** `linux/amd64`, `linux/arm64/v8`, `windows/amd64` -<a id="org1537c8b"></a> +<a id="orge513f25"></a> # What is ABCL? @@ -54,12 +54,12 @@ From [ABCL's Home Page](https://abcl.org) > Armed Bear Common Lisp (ABCL) is a full implementation of the Common Lisp language featuring both an interpreter and a compiler, running in the JVM. Originally started to be a scripting language for the J editor, it now supports JSR-223 (Java scripting API): it can be a scripting engine in any Java application. Additionally, it can be used to implement (parts of) the application using Java to Lisp integration APIs. -<a id="org164f89f"></a> +<a id="org3557f4f"></a> # How to use this iamge -<a id="org6ca2ff5"></a> +<a id="org49dc377"></a> ## Create a `Dockerfile` in your ABCL project @@ -78,7 +78,7 @@ $ docker run -it --rm --name my-running-app my-abcl-app ``` -<a id="org0d774fc"></a> +<a id="orgf9fa139"></a> ## Run a single Common Lisp script @@ -89,7 +89,7 @@ $ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/app -w /usr/sr ``` -<a id="org4df881d"></a> +<a id="orga29cc9a"></a> ## Developing using SLIME @@ -106,14 +106,14 @@ M-x slime-connect RET RET RET ``` -<a id="org95c124a"></a> +<a id="org3be2955"></a> # Image variants This image comes in several variants, each designed for a specific use case. -<a id="org9a12ed3"></a> +<a id="orgcf6a78f"></a> ## `%%IMAGE%%:<version>` @@ -123,15 +123,17 @@ Some of these tags may have names like buster or stretch in them. These are the This tag attempts to replicate the base environment provided by buildpack-deps. It, by design, has a large number of extremely common Debian packages. +These images contain the quicklisp installer, located at `/usr/local/share/common-lisp/source/quicklisp/quicklisp.lisp`. -<a id="org98b4a96"></a> + +<a id="org90b3a21"></a> ## `%%IMAGE%%:<version>-slim` This image does not contain the common packages contained in the default tag and only contains the minimal packages needed to run ABCL. Unless you are working in an environment where only this image will be deployed and you have space constraints, we highly recommend using the default image of this repository. -<a id="orgf106c12"></a> +<a id="org6d31197"></a> ## `%%IMAGE%%:<version>-windowsservercore` @@ -143,7 +145,7 @@ For information about how to get Docker running on Windows, please see the relev - [Windows 10 Quick Start](https://msdn.microsoft.com/en-us/virtualization/windowscontainers/quick_start/quick_start_windows_10) -<a id="orgbad5fc3"></a> +<a id="orge1ad7f0"></a> # License diff --git a/hub-description-template.org b/hub-description-template.org index cd4d262..d8c62c7 100644 --- a/hub-description-template.org +++ b/hub-description-template.org @@ -96,6 +96,9 @@ buildpack-deps. It, by design, has a large number of extremely common Debian packages. + These images contain the quicklisp installer, located at + =/usr/local/share/common-lisp/source/quicklisp/quicklisp.lisp=. + ** =%%IMAGE%%:<version>-slim= This image does not contain the common packages contained in the default tag diff --git a/nightly/buster/jdk-11/Dockerfile b/nightly/buster/jdk-11/Dockerfile index 5e1cd9a..43e2015 100644 --- a/nightly/buster/jdk-11/Dockerfile +++ b/nightly/buster/jdk-11/Dockerfile @@ -101,6 +101,22 @@ RUN set -x \ && rm -rf abcl* ant* apache-ant* \ && java -jar /usr/local/share/abcl/abcl.jar --eval '(print (multiple-value-list (lisp-implementation-version)))' --eval '(quit)' +# Add the Quicklisp installer. +WORKDIR /usr/local/share/common-lisp/source/quicklisp/ + +ENV QUICKLISP_SIGNING_KEY D7A3489DDEFE32B7D0E7CC61307965AB028B5FF7 + +RUN set -x \ + && curl -fsSL "https://beta.quicklisp.org/quicklisp.lisp" > quicklisp.lisp \ + && curl -fsSL "https://beta.quicklisp.org/quicklisp.lisp.asc" > quicklisp.lisp.asc \ + && GNUPGHOME="$(mktemp -d)" \ + && export GNUPGHOME \ + && gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "${QUICKLISP_SIGNING_KEY}" \ + && gpg --batch --verify "quicklisp.lisp.asc" "quicklisp.lisp" \ + && rm quicklisp.lisp.asc \ + && rm -rf "$GNUPGHOME" + +# Add the entrypoint WORKDIR / COPY abcl-wrapper /usr/local/bin/abcl diff --git a/nightly/buster/jdk-15/Dockerfile b/nightly/buster/jdk-15/Dockerfile index 48f5497..7f52fda 100644 --- a/nightly/buster/jdk-15/Dockerfile +++ b/nightly/buster/jdk-15/Dockerfile @@ -101,6 +101,22 @@ RUN set -x \ && rm -rf abcl* ant* apache-ant* \ && java -jar /usr/local/share/abcl/abcl.jar --eval '(print (multiple-value-list (lisp-implementation-version)))' --eval '(quit)' +# Add the Quicklisp installer. +WORKDIR /usr/local/share/common-lisp/source/quicklisp/ + +ENV QUICKLISP_SIGNING_KEY D7A3489DDEFE32B7D0E7CC61307965AB028B5FF7 + +RUN set -x \ + && curl -fsSL "https://beta.quicklisp.org/quicklisp.lisp" > quicklisp.lisp \ + && curl -fsSL "https://beta.quicklisp.org/quicklisp.lisp.asc" > quicklisp.lisp.asc \ + && GNUPGHOME="$(mktemp -d)" \ + && export GNUPGHOME \ + && gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "${QUICKLISP_SIGNING_KEY}" \ + && gpg --batch --verify "quicklisp.lisp.asc" "quicklisp.lisp" \ + && rm quicklisp.lisp.asc \ + && rm -rf "$GNUPGHOME" + +# Add the entrypoint WORKDIR / COPY abcl-wrapper /usr/local/bin/abcl diff --git a/nightly/buster/jdk-8/Dockerfile b/nightly/buster/jdk-8/Dockerfile index b04f8fa..f0cc80d 100644 --- a/nightly/buster/jdk-8/Dockerfile +++ b/nightly/buster/jdk-8/Dockerfile @@ -101,6 +101,22 @@ RUN set -x \ && rm -rf abcl* ant* apache-ant* \ && java -jar /usr/local/share/abcl/abcl.jar --eval '(print (multiple-value-list (lisp-implementation-version)))' --eval '(quit)' +# Add the Quicklisp installer. +WORKDIR /usr/local/share/common-lisp/source/quicklisp/ + +ENV QUICKLISP_SIGNING_KEY D7A3489DDEFE32B7D0E7CC61307965AB028B5FF7 + +RUN set -x \ + && curl -fsSL "https://beta.quicklisp.org/quicklisp.lisp" > quicklisp.lisp \ + && curl -fsSL "https://beta.quicklisp.org/quicklisp.lisp.asc" > quicklisp.lisp.asc \ + && GNUPGHOME="$(mktemp -d)" \ + && export GNUPGHOME \ + && gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "${QUICKLISP_SIGNING_KEY}" \ + && gpg --batch --verify "quicklisp.lisp.asc" "quicklisp.lisp" \ + && rm quicklisp.lisp.asc \ + && rm -rf "$GNUPGHOME" + +# Add the entrypoint WORKDIR / COPY abcl-wrapper /usr/local/bin/abcl -- GitLab