|
| 1 | +FROM debian:bookworm-slim |
| 2 | + |
| 3 | +ENV JAVA_HOME=/opt/java/openjdk |
| 4 | +COPY --from=eclipse-temurin:25 $JAVA_HOME $JAVA_HOME |
| 5 | +ENV PATH="${JAVA_HOME}/bin:${PATH}" |
| 6 | + |
| 7 | +ENV LEIN_VERSION=2.12.0 |
| 8 | +ENV LEIN_INSTALL=/usr/local/bin/ |
| 9 | + |
| 10 | +WORKDIR /tmp |
| 11 | + |
| 12 | +# Download the whole repo as an archive |
| 13 | +RUN set -eux; \ |
| 14 | +apt-get update && \ |
| 15 | +apt-get install -y gnupg wget && \ |
| 16 | +rm -rf /var/lib/apt/lists/* && \ |
| 17 | +mkdir -p $LEIN_INSTALL && \ |
| 18 | +wget -q https://codeberg.org/leiningen/leiningen/raw/tag/$LEIN_VERSION/bin/lein-pkg && \ |
| 19 | +echo "Comparing lein-pkg checksum ..." && \ |
| 20 | +sha256sum lein-pkg && \ |
| 21 | +echo "12a9c5e3a2471619ca3d64a7462f920fdf713ae8959eb4fcd6257c23332b5aa4 *lein-pkg" | sha256sum -c - && \ |
| 22 | +mv lein-pkg $LEIN_INSTALL/lein && \ |
| 23 | +chmod 0755 $LEIN_INSTALL/lein && \ |
| 24 | +export GNUPGHOME="$(mktemp -d)" && \ |
| 25 | +export FILENAME_EXT=jar && \ |
| 26 | +gpg --batch --keyserver hkps://keyserver.ubuntu.com --recv-keys 9D13D9426A0814B3373CF5E3D8A8243577A7859F && \ |
| 27 | +wget -q https://codeberg.org/leiningen/leiningen/releases/download/$LEIN_VERSION/leiningen-$LEIN_VERSION-standalone.$FILENAME_EXT && \ |
| 28 | +wget -q https://codeberg.org/leiningen/leiningen/releases/download/$LEIN_VERSION/leiningen-$LEIN_VERSION-standalone.$FILENAME_EXT.asc && \ |
| 29 | +echo "Verifying file PGP signature..." && \ |
| 30 | +gpg --batch --verify leiningen-$LEIN_VERSION-standalone.$FILENAME_EXT.asc leiningen-$LEIN_VERSION-standalone.$FILENAME_EXT && \ |
| 31 | +gpgconf --kill all && \ |
| 32 | +rm -rf "$GNUPGHOME" leiningen-$LEIN_VERSION-standalone.$FILENAME_EXT.asc && \ |
| 33 | +mkdir -p /usr/share/java && \ |
| 34 | +mkdir -p /root/.lein && \ |
| 35 | +mv leiningen-$LEIN_VERSION-standalone.$FILENAME_EXT /usr/share/java/leiningen-$LEIN_VERSION-standalone.jar && \ |
| 36 | +apt-get purge -y --auto-remove gnupg wget |
| 37 | + |
| 38 | +ENV PATH=$PATH:$LEIN_INSTALL |
| 39 | +ENV LEIN_ROOT 1 |
| 40 | + |
| 41 | +# Install clojure 1.12.1 so users don't have to download it every time |
| 42 | +RUN echo '(defproject dummy "" :dependencies [[org.clojure/clojure "1.12.1"]])' > project.clj \ |
| 43 | + && lein deps && rm project.clj |
| 44 | + |
| 45 | +COPY entrypoint /usr/local/bin/entrypoint |
| 46 | + |
| 47 | +ENTRYPOINT ["entrypoint"] |
| 48 | +CMD ["repl"] |
0 commit comments