-
Notifications
You must be signed in to change notification settings - Fork 18
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
a36b535
commit 0ec49b5
Showing
1 changed file
with
28 additions
and
20 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 \ | ||
Check failure on line 12 in dodona-tested.dockerfile GitHub Actions / tested
|
||
&& 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 [email protected] [email protected] \ | ||
# Haskell dependencies | ||
&& npm install -g [email protected] [email protected] \ | ||
# 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 | ||
|