diff --git a/1.7.1/buster/jdk-11/Dockerfile b/1.7.1/buster/jdk-11/Dockerfile index 4a8722b59d1a0c2537aaced25d12ad43598922fe..a25f2016aae0de824964c8b8c6373f51405aeedb 100644 --- a/1.7.1/buster/jdk-11/Dockerfile +++ b/1.7.1/buster/jdk-11/Dockerfile @@ -5,6 +5,79 @@ # FROM openjdk:11-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 buster based images for jdk12+. + +ARG MAVEN_VERSION=3.6.3 +ARG MAVEN_SHA=c35a1803a6e70a126e80b2b3ae33eed961f83ed74d18fcd16909b2d44d7dada3203f1ffe726c17ef8dcca2dcaa9fca676987befeadc9b9f759967a8cb77181c0 + +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/ diff --git a/1.7.1/buster/jdk-11/slim/Dockerfile b/1.7.1/buster/jdk-11/slim/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..9f14e47895e67065dfdf50ba24e1338a59046ed5 --- /dev/null +++ b/1.7.1/buster/jdk-11/slim/Dockerfile @@ -0,0 +1,41 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# +FROM openjdk:11-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 ha.pool.sks-keyservers.net --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 \ + && 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-11/slim/abcl-wrapper b/1.7.1/buster/jdk-11/slim/abcl-wrapper new file mode 100755 index 0000000000000000000000000000000000000000..cb3658bf15d7e66e88d05cb711de365d636417c0 --- /dev/null +++ b/1.7.1/buster/jdk-11/slim/abcl-wrapper @@ -0,0 +1,3 @@ +#!/bin/sh + +exec java -jar /usr/local/share/abcl/abcl.jar "$@" diff --git a/1.7.1/buster/jdk-11/slim/docker-entrypoint.sh b/1.7.1/buster/jdk-11/slim/docker-entrypoint.sh new file mode 100755 index 0000000000000000000000000000000000000000..7f6b5a34d7349c9fbeb8f116018e075bb257005d --- /dev/null +++ b/1.7.1/buster/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.7.1/buster/jdk-15/Dockerfile b/1.7.1/buster/jdk-15/Dockerfile index e20e193e8094b2ab1e351ffbdc680e64ce2a6033..1dc8ec7be0725823d464163df3b3aa3d631a7cf2 100644 --- a/1.7.1/buster/jdk-15/Dockerfile +++ b/1.7.1/buster/jdk-15/Dockerfile @@ -5,6 +5,79 @@ # FROM openjdk:15-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 buster based images for jdk12+. + +ARG MAVEN_VERSION=3.6.3 +ARG MAVEN_SHA=c35a1803a6e70a126e80b2b3ae33eed961f83ed74d18fcd16909b2d44d7dada3203f1ffe726c17ef8dcca2dcaa9fca676987befeadc9b9f759967a8cb77181c0 + +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/ diff --git a/1.7.1/buster/jdk-15/slim/Dockerfile b/1.7.1/buster/jdk-15/slim/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..8607e45f04a25b91b0a1134143def47f3e691c39 --- /dev/null +++ b/1.7.1/buster/jdk-15/slim/Dockerfile @@ -0,0 +1,41 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# +FROM openjdk:15-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 ha.pool.sks-keyservers.net --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 \ + && 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-15/slim/abcl-wrapper b/1.7.1/buster/jdk-15/slim/abcl-wrapper new file mode 100755 index 0000000000000000000000000000000000000000..cb3658bf15d7e66e88d05cb711de365d636417c0 --- /dev/null +++ b/1.7.1/buster/jdk-15/slim/abcl-wrapper @@ -0,0 +1,3 @@ +#!/bin/sh + +exec java -jar /usr/local/share/abcl/abcl.jar "$@" diff --git a/1.7.1/buster/jdk-15/slim/docker-entrypoint.sh b/1.7.1/buster/jdk-15/slim/docker-entrypoint.sh new file mode 100755 index 0000000000000000000000000000000000000000..7f6b5a34d7349c9fbeb8f116018e075bb257005d --- /dev/null +++ b/1.7.1/buster/jdk-15/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 2d027fc2de5b912d9a22957adc9003d29ef6b0d2..c4cc7e9b07b5ea40a17480bcd878f5c98d570db2 100644 --- a/1.7.1/buster/jdk-8/Dockerfile +++ b/1.7.1/buster/jdk-8/Dockerfile @@ -5,6 +5,79 @@ # FROM openjdk:8-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 buster based images for jdk12+. + +ARG MAVEN_VERSION=3.6.3 +ARG MAVEN_SHA=c35a1803a6e70a126e80b2b3ae33eed961f83ed74d18fcd16909b2d44d7dada3203f1ffe726c17ef8dcca2dcaa9fca676987befeadc9b9f759967a8cb77181c0 + +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/ diff --git a/1.7.1/buster/jdk-8/slim/Dockerfile b/1.7.1/buster/jdk-8/slim/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..3decd820e8c7fe662405c8d335d12290a1001b91 --- /dev/null +++ b/1.7.1/buster/jdk-8/slim/Dockerfile @@ -0,0 +1,41 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# +FROM openjdk:8-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 ha.pool.sks-keyservers.net --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 \ + && 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-8/slim/abcl-wrapper b/1.7.1/buster/jdk-8/slim/abcl-wrapper new file mode 100755 index 0000000000000000000000000000000000000000..cb3658bf15d7e66e88d05cb711de365d636417c0 --- /dev/null +++ b/1.7.1/buster/jdk-8/slim/abcl-wrapper @@ -0,0 +1,3 @@ +#!/bin/sh + +exec java -jar /usr/local/share/abcl/abcl.jar "$@" diff --git a/1.7.1/buster/jdk-8/slim/docker-entrypoint.sh b/1.7.1/buster/jdk-8/slim/docker-entrypoint.sh new file mode 100755 index 0000000000000000000000000000000000000000..7f6b5a34d7349c9fbeb8f116018e075bb257005d --- /dev/null +++ b/1.7.1/buster/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 966170de3dcf555aac665f47ebc6c4f6d5356eba..afe6e68185f32f2f14cb60c7b745114da2d0529d 100644 --- a/1.8.0/buster/jdk-11/Dockerfile +++ b/1.8.0/buster/jdk-11/Dockerfile @@ -5,6 +5,79 @@ # FROM openjdk:11-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 buster based images for jdk12+. + +ARG MAVEN_VERSION=3.6.3 +ARG MAVEN_SHA=c35a1803a6e70a126e80b2b3ae33eed961f83ed74d18fcd16909b2d44d7dada3203f1ffe726c17ef8dcca2dcaa9fca676987befeadc9b9f759967a8cb77181c0 + +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/ diff --git a/1.8.0/buster/jdk-11/slim/Dockerfile b/1.8.0/buster/jdk-11/slim/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..3a580089ebdba0ffb53b42e2a3d97353837c7d52 --- /dev/null +++ b/1.8.0/buster/jdk-11/slim/Dockerfile @@ -0,0 +1,41 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# +FROM openjdk:11-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 ha.pool.sks-keyservers.net --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 \ + && 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-11/slim/abcl-wrapper b/1.8.0/buster/jdk-11/slim/abcl-wrapper new file mode 100755 index 0000000000000000000000000000000000000000..cb3658bf15d7e66e88d05cb711de365d636417c0 --- /dev/null +++ b/1.8.0/buster/jdk-11/slim/abcl-wrapper @@ -0,0 +1,3 @@ +#!/bin/sh + +exec java -jar /usr/local/share/abcl/abcl.jar "$@" diff --git a/1.8.0/buster/jdk-11/slim/docker-entrypoint.sh b/1.8.0/buster/jdk-11/slim/docker-entrypoint.sh new file mode 100755 index 0000000000000000000000000000000000000000..7f6b5a34d7349c9fbeb8f116018e075bb257005d --- /dev/null +++ b/1.8.0/buster/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/buster/jdk-15/Dockerfile b/1.8.0/buster/jdk-15/Dockerfile index 027c50fc1de9b93fdcc1e8853f015a6c225ddb79..1e692d0b5ba4f909ae5f73a06b41045b2e87b63a 100644 --- a/1.8.0/buster/jdk-15/Dockerfile +++ b/1.8.0/buster/jdk-15/Dockerfile @@ -5,6 +5,79 @@ # FROM openjdk:15-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 buster based images for jdk12+. + +ARG MAVEN_VERSION=3.6.3 +ARG MAVEN_SHA=c35a1803a6e70a126e80b2b3ae33eed961f83ed74d18fcd16909b2d44d7dada3203f1ffe726c17ef8dcca2dcaa9fca676987befeadc9b9f759967a8cb77181c0 + +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/ diff --git a/1.8.0/buster/jdk-15/slim/Dockerfile b/1.8.0/buster/jdk-15/slim/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..b6dd0376dea3ba3abc6302e0780904ba39a873a9 --- /dev/null +++ b/1.8.0/buster/jdk-15/slim/Dockerfile @@ -0,0 +1,41 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# +FROM openjdk:15-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 ha.pool.sks-keyservers.net --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 \ + && 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.8.0/buster/jdk-15/slim/abcl-wrapper new file mode 100755 index 0000000000000000000000000000000000000000..cb3658bf15d7e66e88d05cb711de365d636417c0 --- /dev/null +++ b/1.8.0/buster/jdk-15/slim/abcl-wrapper @@ -0,0 +1,3 @@ +#!/bin/sh + +exec java -jar /usr/local/share/abcl/abcl.jar "$@" diff --git a/1.8.0/buster/jdk-15/slim/docker-entrypoint.sh b/1.8.0/buster/jdk-15/slim/docker-entrypoint.sh new file mode 100755 index 0000000000000000000000000000000000000000..7f6b5a34d7349c9fbeb8f116018e075bb257005d --- /dev/null +++ b/1.8.0/buster/jdk-15/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 6f8c51bf6381d1635ed232c8879b77121762a85e..5c50147a6666163d736b93d033c01877f1197a3b 100644 --- a/1.8.0/buster/jdk-8/Dockerfile +++ b/1.8.0/buster/jdk-8/Dockerfile @@ -5,6 +5,79 @@ # FROM openjdk:8-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 buster based images for jdk12+. + +ARG MAVEN_VERSION=3.6.3 +ARG MAVEN_SHA=c35a1803a6e70a126e80b2b3ae33eed961f83ed74d18fcd16909b2d44d7dada3203f1ffe726c17ef8dcca2dcaa9fca676987befeadc9b9f759967a8cb77181c0 + +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/ diff --git a/1.8.0/buster/jdk-8/slim/Dockerfile b/1.8.0/buster/jdk-8/slim/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..e6352e230827e8d1212421ae5d9cfc0c74f354bd --- /dev/null +++ b/1.8.0/buster/jdk-8/slim/Dockerfile @@ -0,0 +1,41 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# +FROM openjdk:8-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 ha.pool.sks-keyservers.net --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 \ + && 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-8/slim/abcl-wrapper b/1.8.0/buster/jdk-8/slim/abcl-wrapper new file mode 100755 index 0000000000000000000000000000000000000000..cb3658bf15d7e66e88d05cb711de365d636417c0 --- /dev/null +++ b/1.8.0/buster/jdk-8/slim/abcl-wrapper @@ -0,0 +1,3 @@ +#!/bin/sh + +exec java -jar /usr/local/share/abcl/abcl.jar "$@" diff --git a/1.8.0/buster/jdk-8/slim/docker-entrypoint.sh b/1.8.0/buster/jdk-8/slim/docker-entrypoint.sh new file mode 100755 index 0000000000000000000000000000000000000000..7f6b5a34d7349c9fbeb8f116018e075bb257005d --- /dev/null +++ b/1.8.0/buster/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/Dockerfile-apt-nightly.template b/Dockerfile-apt-nightly.template index dcd47bb22a4625f7765921c82fdfe7fbb75cdc84..11d3732972e3484c27cb0e6d273d67cd884d87f7 100644 --- a/Dockerfile-apt-nightly.template +++ b/Dockerfile-apt-nightly.template @@ -1,5 +1,78 @@ FROM PLACEHOLDER +# 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 buster based images for jdk12+. + +ARG MAVEN_VERSION=3.6.3 +ARG MAVEN_SHA=c35a1803a6e70a126e80b2b3ae33eed961f83ed74d18fcd16909b2d44d7dada3203f1ffe726c17ef8dcca2dcaa9fca676987befeadc9b9f759967a8cb77181c0 + +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_COMMIT PLACEHOLDER WORKDIR /usr/local/src/ diff --git a/Dockerfile-apt-slim-nightly.template b/Dockerfile-apt-slim-nightly.template new file mode 100644 index 0000000000000000000000000000000000000000..a940c42c82fcb1fb8e9ee9190e18d00e93c17146 --- /dev/null +++ b/Dockerfile-apt-slim-nightly.template @@ -0,0 +1,40 @@ +FROM PLACEHOLDER + +ENV ABCL_COMMIT PLACEHOLDER + +WORKDIR /usr/local/src/ + +RUN set -x \ + # Install fetch deps + && apt-get update \ + && apt-get install --no-install-recommends -y curl gnupg dirmngr \ + # Install ant + && ANT_VERSION="1.10.9" \ + && curl -fsSL "https://mirrors.gigenet.com/apache/ant/binaries/apache-ant-$ANT_VERSION-bin.tar.gz" > "ant-$ANT_VERSION.tar.gz" \ + && tar xf "ant-$ANT_VERSION.tar.gz" \ + && PATH="/usr/local/src/apache-ant-$ANT_VERSION/bin:$PATH" \ + && ANT_HOME="/usr/local/src/apache-ant-$ANT_VERSION" \ + && export ANT_HOME \ + # Install ABCL + && curl -fsSL "https://github.com/armedbear/abcl/archive/$ABCL_COMMIT.tar.gz" > "abcl-$ABCL_COMMIT.tar.gz" \ + && tar xf "abcl-$ABCL_COMMIT.tar.gz" \ + && JAVA_MAJOR_VERSION="${JAVA_VERSION%%.*}" \ + && JAVA_MAJOR_VERSION="${JAVA_MAJOR_VERSION%%u*}" \ + && export JAVA_MAJOR_VERSION \ + && mkdir /usr/local/share/abcl/ \ + && (cd "abcl-$ABCL_COMMIT" && bash ./ci/create-abcl-properties.bash "openjdk$JAVA_MAJOR_VERSION" && ant && cp dist/* /usr/local/share/abcl ) \ + && rm -rf abcl* ant* apache-ant* \ + # Remove fetch deps + && apt-get remove -y curl gnupg dirmngr \ + && 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/Dockerfile-apt-slim.template b/Dockerfile-apt-slim.template new file mode 100644 index 0000000000000000000000000000000000000000..dc57511cb0f15e5df1e1642eb4fdd02b3e11e5e5 --- /dev/null +++ b/Dockerfile-apt-slim.template @@ -0,0 +1,36 @@ +FROM PLACEHOLDER + +ENV ABCL_VERSION PLACEHOLDER + +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 ha.pool.sks-keyservers.net --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 \ + && 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/Dockerfile-apt.template b/Dockerfile-apt.template index 1aedb742e4fdd0ea484b4782c5e2693776ac67d2..a5530eac628cec3a8d52f49863c461199b9bb122 100644 --- a/Dockerfile-apt.template +++ b/Dockerfile-apt.template @@ -1,5 +1,78 @@ FROM PLACEHOLDER +# 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 buster based images for jdk12+. + +ARG MAVEN_VERSION=3.6.3 +ARG MAVEN_SHA=c35a1803a6e70a126e80b2b3ae33eed961f83ed74d18fcd16909b2d44d7dada3203f1ffe726c17ef8dcca2dcaa9fca676987befeadc9b9f759967a8cb77181c0 + +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 PLACEHOLDER WORKDIR /usr/local/share/ diff --git a/generate-stackbrew-library.sh b/generate-stackbrew-library.sh index d97d4a0332877e31ae97ecdf4955bc8da5ea46c8..f676a33328b4b3a08f34392f93b08f672b91a624 100755 --- a/generate-stackbrew-library.sh +++ b/generate-stackbrew-library.sh @@ -82,13 +82,22 @@ join() { for version in "${versions[@]}"; do for v in \ - buster/{jdk-15,jdk-11,jdk-8} \ + buster/{jdk-15,jdk-11,jdk-8}/{,slim} \ windowsservercore-{1809,ltsc2016}/{jdk-15,jdk-11,jdk-8} \ ; do os="${v%%/*}" - javaVariant="$(basename "$v")" + javaVariant="${v%/*}" + javaVariant="$(basename "$javaVariant")" javaVersion="${javaVariant#jdk-}" javaType="${javaVariant%-*}" + + variant="${v##*/}" + if [ -n "$variant" ]; then + variantTag="-$variant" + else + variantTag="" + fi + dir="$version/$v" if [ "$version" = "nightly" ] && [[ "$os" == "windowsservercore"* ]]; then @@ -104,7 +113,7 @@ for version in "${versions[@]}"; do ${aliases[$version]:-} ) - variantAliases=( "${versionAliases[@]/%/-$javaType$javaVersion-$os}" ) + variantAliases=( "${versionAliases[@]/%/-$javaType$javaVersion$variantTag-$os}" ) variantAliases=( "${variantAliases[@]//latest-/}" ) case "$os" in @@ -116,22 +125,22 @@ for version in "${versions[@]}"; do esac if [ "$javaVersion" = "$defaultJavaVersion" ]; then - variantAliases+=( "${versionAliases[@]/%/-$javaType-$os}" ) - variantAliases+=( "${versionAliases[@]/%/-$os}" ) + variantAliases+=( "${versionAliases[@]/%/-$javaType$variantTag-$os}" ) + variantAliases+=( "${versionAliases[@]/%/$variantTag-$os}" ) variantAliases=( "${variantAliases[@]//latest-/}" ) fi sharedTags=() if [ "$os" = "$defaultDebianSuite" ] || [[ "$os" == 'windowsservercore'* ]]; then - sharedTags+=( "${versionAliases[@]/%/-$javaType$javaVersion}" ) + sharedTags+=( "${versionAliases[@]/%/-$javaType$javaVersion$variantTag}" ) if [ "$javaVersion" = "$defaultJavaVersion" ]; then - sharedTags+=( "${versionAliases[@]/%/-$javaType}" ) - sharedTags+=( "${versionAliases[@]}" ) + sharedTags+=( "${versionAliases[@]/%/-$javaType$variantTag}" ) + sharedTags+=( "${versionAliases[@]/%/$variantTag}" ) fi if [[ "$os" == "windowsservercore"* ]]; then - sharedTags+=( "${sharedTags[@]/%/-windowsservercore}") + sharedTags+=( "${sharedTags[@]/%/-windowsservercore$variantTag}") fi fi diff --git a/nightly/buster/jdk-11/Dockerfile b/nightly/buster/jdk-11/Dockerfile index d71430fca1c3b7cd5ff009de1c94b114a34d96bc..5e1cd9afb79dcfb4b7dff48ae21b03f905aa1d2f 100644 --- a/nightly/buster/jdk-11/Dockerfile +++ b/nightly/buster/jdk-11/Dockerfile @@ -5,6 +5,79 @@ # FROM openjdk:11-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 buster based images for jdk12+. + +ARG MAVEN_VERSION=3.6.3 +ARG MAVEN_SHA=c35a1803a6e70a126e80b2b3ae33eed961f83ed74d18fcd16909b2d44d7dada3203f1ffe726c17ef8dcca2dcaa9fca676987befeadc9b9f759967a8cb77181c0 + +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_COMMIT 9c0a9693ea933309e503266255edcde5cc76257c WORKDIR /usr/local/src/ diff --git a/nightly/buster/jdk-11/slim/Dockerfile b/nightly/buster/jdk-11/slim/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..37ed0d44293179e213ae5ca1579b845f2d76a060 --- /dev/null +++ b/nightly/buster/jdk-11/slim/Dockerfile @@ -0,0 +1,45 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# +FROM openjdk:11-jdk-slim-buster + +ENV ABCL_COMMIT 9c0a9693ea933309e503266255edcde5cc76257c + +WORKDIR /usr/local/src/ + +RUN set -x \ + # Install fetch deps + && apt-get update \ + && apt-get install --no-install-recommends -y curl gnupg dirmngr \ + # Install ant + && ANT_VERSION="1.10.9" \ + && curl -fsSL "https://mirrors.gigenet.com/apache/ant/binaries/apache-ant-$ANT_VERSION-bin.tar.gz" > "ant-$ANT_VERSION.tar.gz" \ + && tar xf "ant-$ANT_VERSION.tar.gz" \ + && PATH="/usr/local/src/apache-ant-$ANT_VERSION/bin:$PATH" \ + && ANT_HOME="/usr/local/src/apache-ant-$ANT_VERSION" \ + && export ANT_HOME \ + # Install ABCL + && curl -fsSL "https://github.com/armedbear/abcl/archive/$ABCL_COMMIT.tar.gz" > "abcl-$ABCL_COMMIT.tar.gz" \ + && tar xf "abcl-$ABCL_COMMIT.tar.gz" \ + && JAVA_MAJOR_VERSION="${JAVA_VERSION%%.*}" \ + && JAVA_MAJOR_VERSION="${JAVA_MAJOR_VERSION%%u*}" \ + && export JAVA_MAJOR_VERSION \ + && mkdir /usr/local/share/abcl/ \ + && (cd "abcl-$ABCL_COMMIT" && bash ./ci/create-abcl-properties.bash "openjdk$JAVA_MAJOR_VERSION" && ant && cp dist/* /usr/local/share/abcl ) \ + && rm -rf abcl* ant* apache-ant* \ + # Remove fetch deps + && apt-get remove -y curl gnupg dirmngr \ + && 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/nightly/buster/jdk-11/slim/abcl-wrapper b/nightly/buster/jdk-11/slim/abcl-wrapper new file mode 100755 index 0000000000000000000000000000000000000000..cb3658bf15d7e66e88d05cb711de365d636417c0 --- /dev/null +++ b/nightly/buster/jdk-11/slim/abcl-wrapper @@ -0,0 +1,3 @@ +#!/bin/sh + +exec java -jar /usr/local/share/abcl/abcl.jar "$@" diff --git a/nightly/buster/jdk-11/slim/docker-entrypoint.sh b/nightly/buster/jdk-11/slim/docker-entrypoint.sh new file mode 100755 index 0000000000000000000000000000000000000000..7f6b5a34d7349c9fbeb8f116018e075bb257005d --- /dev/null +++ b/nightly/buster/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/nightly/buster/jdk-15/Dockerfile b/nightly/buster/jdk-15/Dockerfile index bdd2392fa6fa9cb85cb884553acb03758fd3fe05..48f54974500021988687c159db8d94baf8678908 100644 --- a/nightly/buster/jdk-15/Dockerfile +++ b/nightly/buster/jdk-15/Dockerfile @@ -5,6 +5,79 @@ # FROM openjdk:15-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 buster based images for jdk12+. + +ARG MAVEN_VERSION=3.6.3 +ARG MAVEN_SHA=c35a1803a6e70a126e80b2b3ae33eed961f83ed74d18fcd16909b2d44d7dada3203f1ffe726c17ef8dcca2dcaa9fca676987befeadc9b9f759967a8cb77181c0 + +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_COMMIT 9c0a9693ea933309e503266255edcde5cc76257c WORKDIR /usr/local/src/ diff --git a/nightly/buster/jdk-15/slim/Dockerfile b/nightly/buster/jdk-15/slim/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..267f9c43ac149d6aebdd86c129f12e9e93e0cad5 --- /dev/null +++ b/nightly/buster/jdk-15/slim/Dockerfile @@ -0,0 +1,45 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# +FROM openjdk:15-jdk-slim-buster + +ENV ABCL_COMMIT 9c0a9693ea933309e503266255edcde5cc76257c + +WORKDIR /usr/local/src/ + +RUN set -x \ + # Install fetch deps + && apt-get update \ + && apt-get install --no-install-recommends -y curl gnupg dirmngr \ + # Install ant + && ANT_VERSION="1.10.9" \ + && curl -fsSL "https://mirrors.gigenet.com/apache/ant/binaries/apache-ant-$ANT_VERSION-bin.tar.gz" > "ant-$ANT_VERSION.tar.gz" \ + && tar xf "ant-$ANT_VERSION.tar.gz" \ + && PATH="/usr/local/src/apache-ant-$ANT_VERSION/bin:$PATH" \ + && ANT_HOME="/usr/local/src/apache-ant-$ANT_VERSION" \ + && export ANT_HOME \ + # Install ABCL + && curl -fsSL "https://github.com/armedbear/abcl/archive/$ABCL_COMMIT.tar.gz" > "abcl-$ABCL_COMMIT.tar.gz" \ + && tar xf "abcl-$ABCL_COMMIT.tar.gz" \ + && JAVA_MAJOR_VERSION="${JAVA_VERSION%%.*}" \ + && JAVA_MAJOR_VERSION="${JAVA_MAJOR_VERSION%%u*}" \ + && export JAVA_MAJOR_VERSION \ + && mkdir /usr/local/share/abcl/ \ + && (cd "abcl-$ABCL_COMMIT" && bash ./ci/create-abcl-properties.bash "openjdk$JAVA_MAJOR_VERSION" && ant && cp dist/* /usr/local/share/abcl ) \ + && rm -rf abcl* ant* apache-ant* \ + # Remove fetch deps + && apt-get remove -y curl gnupg dirmngr \ + && 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/nightly/buster/jdk-15/slim/abcl-wrapper b/nightly/buster/jdk-15/slim/abcl-wrapper new file mode 100755 index 0000000000000000000000000000000000000000..cb3658bf15d7e66e88d05cb711de365d636417c0 --- /dev/null +++ b/nightly/buster/jdk-15/slim/abcl-wrapper @@ -0,0 +1,3 @@ +#!/bin/sh + +exec java -jar /usr/local/share/abcl/abcl.jar "$@" diff --git a/nightly/buster/jdk-15/slim/docker-entrypoint.sh b/nightly/buster/jdk-15/slim/docker-entrypoint.sh new file mode 100755 index 0000000000000000000000000000000000000000..7f6b5a34d7349c9fbeb8f116018e075bb257005d --- /dev/null +++ b/nightly/buster/jdk-15/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/nightly/buster/jdk-8/Dockerfile b/nightly/buster/jdk-8/Dockerfile index d55cfb49df721903517769f1d3e6b6e275489458..b04f8fa73d529f3a08150108eb90e228e3806b81 100644 --- a/nightly/buster/jdk-8/Dockerfile +++ b/nightly/buster/jdk-8/Dockerfile @@ -5,6 +5,79 @@ # FROM openjdk:8-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 buster based images for jdk12+. + +ARG MAVEN_VERSION=3.6.3 +ARG MAVEN_SHA=c35a1803a6e70a126e80b2b3ae33eed961f83ed74d18fcd16909b2d44d7dada3203f1ffe726c17ef8dcca2dcaa9fca676987befeadc9b9f759967a8cb77181c0 + +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_COMMIT 9c0a9693ea933309e503266255edcde5cc76257c WORKDIR /usr/local/src/ diff --git a/nightly/buster/jdk-8/slim/Dockerfile b/nightly/buster/jdk-8/slim/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..a0a28c13e4f3c327e19d3425a303f9e62873735a --- /dev/null +++ b/nightly/buster/jdk-8/slim/Dockerfile @@ -0,0 +1,45 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh" +# +# PLEASE DO NOT EDIT IT DIRECTLY. +# +FROM openjdk:8-jdk-slim-buster + +ENV ABCL_COMMIT 9c0a9693ea933309e503266255edcde5cc76257c + +WORKDIR /usr/local/src/ + +RUN set -x \ + # Install fetch deps + && apt-get update \ + && apt-get install --no-install-recommends -y curl gnupg dirmngr \ + # Install ant + && ANT_VERSION="1.10.9" \ + && curl -fsSL "https://mirrors.gigenet.com/apache/ant/binaries/apache-ant-$ANT_VERSION-bin.tar.gz" > "ant-$ANT_VERSION.tar.gz" \ + && tar xf "ant-$ANT_VERSION.tar.gz" \ + && PATH="/usr/local/src/apache-ant-$ANT_VERSION/bin:$PATH" \ + && ANT_HOME="/usr/local/src/apache-ant-$ANT_VERSION" \ + && export ANT_HOME \ + # Install ABCL + && curl -fsSL "https://github.com/armedbear/abcl/archive/$ABCL_COMMIT.tar.gz" > "abcl-$ABCL_COMMIT.tar.gz" \ + && tar xf "abcl-$ABCL_COMMIT.tar.gz" \ + && JAVA_MAJOR_VERSION="${JAVA_VERSION%%.*}" \ + && JAVA_MAJOR_VERSION="${JAVA_MAJOR_VERSION%%u*}" \ + && export JAVA_MAJOR_VERSION \ + && mkdir /usr/local/share/abcl/ \ + && (cd "abcl-$ABCL_COMMIT" && bash ./ci/create-abcl-properties.bash "openjdk$JAVA_MAJOR_VERSION" && ant && cp dist/* /usr/local/share/abcl ) \ + && rm -rf abcl* ant* apache-ant* \ + # Remove fetch deps + && apt-get remove -y curl gnupg dirmngr \ + && 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/nightly/buster/jdk-8/slim/abcl-wrapper b/nightly/buster/jdk-8/slim/abcl-wrapper new file mode 100755 index 0000000000000000000000000000000000000000..cb3658bf15d7e66e88d05cb711de365d636417c0 --- /dev/null +++ b/nightly/buster/jdk-8/slim/abcl-wrapper @@ -0,0 +1,3 @@ +#!/bin/sh + +exec java -jar /usr/local/share/abcl/abcl.jar "$@" diff --git a/nightly/buster/jdk-8/slim/docker-entrypoint.sh b/nightly/buster/jdk-8/slim/docker-entrypoint.sh new file mode 100755 index 0000000000000000000000000000000000000000..7f6b5a34d7349c9fbeb8f116018e075bb257005d --- /dev/null +++ b/nightly/buster/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/update.sh b/update.sh index cd11d449ef3ddf22809e2dfd3f66c304f7d53d51..ebc9d74d0ca4fe538d5d0b4aa6dc67757653a49b 100755 --- a/update.sh +++ b/update.sh @@ -28,13 +28,22 @@ for version in "${versions[@]}"; do fi for v in \ - buster/{jdk-15,jdk-11,jdk-8} \ - windowsservercore-{1809,ltsc2016}/{jdk-15,jdk-11,jdk-8} \ + buster/{jdk-15,jdk-11,jdk-8}/{,slim} \ + windowsservercore-{1809,ltsc2016}/{jdk-15,jdk-11,jdk-8}/ \ ; do os="${v%%/*}" - javaVariant="$(basename "$v")" + javaVariant="${v%/*}" + javaVariant="$(basename "$javaVariant")" javaVersion="${javaVariant#jdk-}" javaType="${javaVariant%-*}" + + variant="${v##*/}" + if [ -n "$variant" ]; then + variantTag="-$variant" + else + variantTag="" + fi + dir="$version/$v" if [ "$version" = "nightly" ] && [[ "$os" == "windowsservercore"* ]]; then @@ -45,7 +54,7 @@ for version in "${versions[@]}"; do case "$os" in buster) - template="apt" + template="apt$variantTag" cp abcl-wrapper "$dir/abcl-wrapper" cp docker-entrypoint.sh "$dir/docker-entrypoint.sh" ;; @@ -59,7 +68,7 @@ for version in "${versions[@]}"; do template="$template-nightly" fi - tag="$javaVersion-$javaType-$os" + tag="$javaVersion-$javaType$variantTag-$os" template="Dockerfile-${template}.template" { generated_warning; cat "$template"; } > "$dir/Dockerfile"