You have now reached the end of this tutorial and should be able to design assignments using INGInious. Some things remain uncovered like natch jobs and plugins. Those are advanced features for the superadministrator; please refer to the complete documentation.
In this last section you'll find out how to add some environments to your INGInious installation. Indeed, our default environment only provides Python 2/3 along with some standard command-line tools. Please note that this is only accessible to the superadministrator, who has access to the INGInious installation.
Some environments based on free and open source software are provided by the INGInious authors:
|Default Python 2/3 environment.|
|Includes GCC toolchain for C/C++ development.|
|Includes Java 7 and JUnit.|
|Includes Java 8 and Scala.|
|Includes Octave and Julia.|
|Includes the Mono framework for cross-platform dotnet development.|
|Includes Mozart/Oz v2.0.0alpha.|
|Includes Sekexe to run process in user-mode Linux.|
|Includes Icarus Verilog.|
INGInious supported environments are available through the Docker hub, and can be downloaded via the following command on your INGInious instances:
docker pull ingi/inginious-c-ENVIRONMENT_NAME
Then, restart the INGInious agent in order to see the new environment on the environment list.
All INGInious environment containers inherits from the
ingi/inginious-c-base container which provides the INGInious API on CentOS distribution. To define a new environment, you'll need to:
- Define a Docker container that inherits from
- Name the environment using the
For instance, these basic
Dockerfile will provide you with GCC for C/C++ development with environment name
FROM ingi/inginious-c-base LABEL org.inginious.grading.name="cpp" RUN yum install -y gcc cpp make binutils libstdc++ && yum clean all
This new container can be built and used inside INGInious (after INGInious restart) by using the following command:
docker build -t ingi/inginious-c-ENVIRONMENT_NAME FOLDER_TO_DOCKERFILE
Below you'll find a small MCQ to review and better understand how to make additional INGInious environments.
|Author(s)||The INGInious authors|
|Submission limit||No limitation|