From 0ec49b58b81102fe6dd18574e2f239da0099ce1a Mon Sep 17 00:00:00 2001 From: Niko Strijbol Date: Mon, 27 May 2024 16:43:59 +0200 Subject: [PATCH] Bump TESTed stuff --- dodona-tested.dockerfile | 48 +++++++++++++++++++++++----------------- 1 file changed, 28 insertions(+), 20 deletions(-) diff --git a/dodona-tested.dockerfile b/dodona-tested.dockerfile index 1036229..d3694bd 100644 --- a/dodona-tested.dockerfile +++ b/dodona-tested.dockerfile @@ -1,11 +1,14 @@ -FROM python:3.12.3-slim-bullseye +FROM python:3.12.3-slim-bookworm # Environment Kotlin ENV SDKMAN_DIR /usr/local/sdkman +ENV HASKELL_DIR /usr/local/ghcupdir ENV PATH $SDKMAN_DIR/candidates/kotlin/current/bin:$PATH +ENV PATH $SDKMAN_DIR/candidates/java/current/bin:$PATH +ENV PATH $HASKELL_DIR/ghc/bin:$PATH +ENV PATH $HASKELL_DIR/cabal:$PATH ENV NODE_PATH /usr/lib/node_modules # Add manual directory for default-jdk -# hadolint ignore=DL3008 RUN mkdir -p /usr/share/man/man1mkdir -p /usr/share/man/man1 \ && apt-get update \ # Install additional dependencies @@ -17,42 +20,47 @@ RUN mkdir -p /usr/share/man/man1mkdir -p /usr/share/man/man1 \ unzip \ # Bash language dependencies bc binutils bsdmainutils cowsay ed figlet file toilet tree vim xxd \ + # Dependencies for GHCup + autoconf build-essential zlib1g-dev libgmp-dev \ && curl https://packages.microsoft.com/config/debian/11/packages-microsoft-prod.deb --output packages-microsoft-prod.deb \ && dpkg -i packages-microsoft-prod.deb \ && rm packages-microsoft-prod.deb \ - # Add nodejs v18 - && bash -c 'set -o pipefail && curl -fsSL https://deb.nodesource.com/setup_18.x | bash -' \ - # Install programming languages \ + # JavaScript dependencies + && bash -c 'set -o pipefail && curl -fsSL https://deb.nodesource.com/setup_21.x | bash -' \ + # Haskell dependencies + && curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | BOOTSTRAP_HASKELL_NONINTERACTIVE=1 BOOTSTRAP_HASKELL_MINIMAL=1 sh \ + && bash -c "source /root/.ghcup/env && ghcup install ghc 9.6 --isolate $HASKELL_DIR/ghc" \ + && bash -c "source /root/.ghcup/env && ghcup install cabal --isolate $HASKELL_DIR/cabal" \ + # Install programming languages \ && apt-get install -y --no-install-recommends \ - # TESTed Java and Kotlin judge dependency - openjdk-17-jdk \ - checkstyle=8.36.1-1 \ - # TESTed Haskell judge dependency - haskell-platform=2014.2.0.0.debian8 \ - hlint=3.1.6-1 \ + # Checkstyle, other Java stuff uses SDKMAN! below + checkstyle \ + hlint \ # TESTed C judge dependency - gcc=4:10.2.1-1 \ - cppcheck=2.3-1 \ + gcc \ + cppcheck \ # TESTed Javascript judge dependency nodejs \ # TESTed bash judge dependency - shellcheck=0.7.1-1+deb11u1 \ + shellcheck \ # C# dependency - dotnet-sdk-6.0=6.0.405-1 \ + dotnet-sdk-8.0 \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* \ # TESTed Judge depencencies - && pip install --no-cache-dir --upgrade psutil==5.9.5 attrs==23.1.0 cattrs==23.1.2 jsonschema==4.19.1 typing_inspect==0.9.0 pyyaml==6.0.1 Pygments==2.16.1 python-i18n==0.3.9 pylint==3.0.1 \ + && pip install --no-cache-dir --upgrade psutil==5.9.8 attrs==23.2.0 cattrs==23.2.3 jsonschema==4.22.0 typing_inspect==0.9.0 pyyaml==6.0.1 Pygments==2.18.0 python-i18n==0.3.9 pylint==3.0.1 \ # TESTed Kotlin judge dependencies && bash -c 'set -o pipefail && curl -s "https://get.sdkman.io?rcupdate=false" | bash' \ && chmod a+x "$SDKMAN_DIR/bin/sdkman-init.sh" \ - && bash -c "source \"$SDKMAN_DIR/bin/sdkman-init.sh\" && sdk install kotlin 1.8.0" \ - && curl -sSLO https://github.com/pinterest/ktlint/releases/download/0.48.2/ktlint \ + && bash -c "source \"$SDKMAN_DIR/bin/sdkman-init.sh\" && sdk install java 21.0.3-tem && sdk install kotlin" \ + && curl -sSLO https://github.com/pinterest/ktlint/releases/download/1.2.1/ktlint \ && chmod a+x ktlint \ && mv ktlint /usr/local/bin \ # JavaScript dependencies - && npm install -g eslint@8.36 abstract-syntax-tree@2.17.6 \ - # Haskell dependencies + && npm install -g eslint@8.57 abstract-syntax-tree@2.22 \ + # Haskell dependencies \ + && which cabal \ + && ls $HASKELL_DIR/ghc \ && cabal update \ && cabal v1-install --global aeson \ # Make sure the students can't find our secret path, which is mounted in