From a243443982d362ba075befdb269ee71d384fc6bd Mon Sep 17 00:00:00 2001 From: abuzogan Date: Fri, 26 Apr 2024 10:36:13 +0200 Subject: [PATCH] Fix #255 --- .../project/utils/submissions/evaluator.py | 6 +++- .../submissions/evaluators/general/Dockerfile | 32 +++++++++++++++++++ .../evaluators/general/entry_point.sh | 3 ++ 3 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 backend/project/utils/submissions/evaluators/general/Dockerfile create mode 100644 backend/project/utils/submissions/evaluators/general/entry_point.sh diff --git a/backend/project/utils/submissions/evaluator.py b/backend/project/utils/submissions/evaluator.py index da81aefc..e2d9243e 100644 --- a/backend/project/utils/submissions/evaluator.py +++ b/backend/project/utils/submissions/evaluator.py @@ -14,8 +14,12 @@ from project.db_in import db from project.models.submission import Submission + +EVALUATORS_FOLDER = path.join(path.join(__file__), "evaluators") + DOCKER_IMAGE_MAPPER = { - "PYTHON": path.join(path.dirname(__file__), "evaluators", "python"), + "PYTHON": path.join(EVALUATORS_FOLDER, "python"), + "GENERAL": path.join(EVALUATORS_FOLDER, "general") } diff --git a/backend/project/utils/submissions/evaluators/general/Dockerfile b/backend/project/utils/submissions/evaluators/general/Dockerfile new file mode 100644 index 00000000..f0cf4ca4 --- /dev/null +++ b/backend/project/utils/submissions/evaluators/general/Dockerfile @@ -0,0 +1,32 @@ +# Use Ubuntu as the base image +FROM ubuntu:latest + +# Avoiding user interaction with tzdata, etc. +ENV DEBIAN_FRONTEND=noninteractive + +# Update and install basic dependencies +RUN apt-get update && apt-get install -y \ + software-properties-common \ + build-essential \ + curl \ + wget \ + git \ + cmake # Adding CMake for C/C++ project management + +# Install Python +RUN apt-get install -y python3 python3-pip + +# Install Node.js +RUN curl -sL https://deb.nodesource.com/setup_14.x | bash - +RUN apt-get install -y nodejs + +# Install Java +RUN apt-get install -y openjdk-11-jdk + +# Install Ruby +RUN apt-get install -y ruby-full + +# Clean up to reduce the image size +RUN apt-get clean && rm -rf /var/lib/apt/lists/* + +COPY . . \ No newline at end of file diff --git a/backend/project/utils/submissions/evaluators/general/entry_point.sh b/backend/project/utils/submissions/evaluators/general/entry_point.sh new file mode 100644 index 00000000..9cdc7a66 --- /dev/null +++ b/backend/project/utils/submissions/evaluators/general/entry_point.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +bash /tests/run_test.sh