Coder Social home page Coder Social logo

docker-domjudge's Introduction

Docker for DOMjudge

These Dockerfiles allow you to run DOMjudge inside a Docker container.

Usage

Use Docker Compose to build the images:

$ docker-compose -f docker-compose-domserver.yml up --build
$ docker-compose -f docker-compose-judgehost.yml up --build

You may want to edit domserver/apache.conf.in to enable TLS or tweak the PHP upload restrictions.

The domserver compose file comes bundled with a MariaDB container. If you want to use this, you only need to specify a password for the mysql root user and for the domjudge user by setting DOMJUDGE_DB_ROOT_PASSWORD and MYSQL_ROOT_PASSWORD to the root password, and DOMJUDGE_DB_PASSWORD to the domjudge user password. You can also use a standalone MySQL server. In that case, you need to specify the DOMJUDGE_DB_HOST variable. It is also possible to specify a database name and domjudge user name (both default to domjudge) by setting DOMJUDGE_DB_NAME and DOMJUDGE_DB_USER.

You can also specify a timezone by setting the TIMEZONE variable.

As for the judgehost, you need to run the container in privileged mode to use cgroups. You also need to specify the domserver URL and judgehost user password by setting DOMSERVER_HOST, DOMSERVER_PASSWORD. You can set DOMJUDGE_USER as well, but it defaults to judgehost. You should also specify a hostname for this container to identify it in the domserver. If you want to support more programming languages, you need to edit judgehost/languages to specify the (Debian) packages to download. You also need to specify the following kernel parameters on the container host for cgroups: cgroup_enable=memory swapaccount=1.

Patches

You can customize the DOMjudge source by adding patches to the patches directories.

docker-domjudge's People

Contributors

andrewsosa avatar wfdewith avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.