Запуск в контейнере docker

From EjudgeWiki

Навигация: Главная страница/Система ejudge/Инсталляция/Запуск в контейнере docker

Поддерживается с версии 3.10.1.

Потребуется сам docker и утилита docker-compose.

Запуск

Для запуска ejudge в контейнере docker выполните следущее.

Скачайте исходные коды ejudge с git:

git clone https://github.com/blackav/ejudge.git

Перейдите в каталог ejudge

cd ejudge

Соберите образ

docker-compose build

Запустите

docker-compose up -d

ejudge будет доступен по адресу http://127.0.0.1:90

Содержимое БД и каталогов турниров хранятся на отдельных томах и сохранятся в случае пересоздания контейнера (например, при обновлении версии).

Особенности

Не используйте данный контейнер в production-окружении!

Все компоненты ejudge (ej-users, ...) запускаются в одном контейнере. Предпочтительнее, чтобы компоненты системы были разнесены по разным контейнерам (TODO).

Компиляция выполняется под пользователем ejcompile, а запуск под пользователем ejexec, но дополнительных ограничений на компиляцию и выполнение не накладывается. В частности, исполнение в изолированном контейнере внутри docker-контейнера не поддерживается.

В ejudge установлены следующие языки программирования: clang, clang++, clang-32, clang++-32, g++, g++-32, g++-vg, gas, gas-32, gcc, gcc-32, gcc-vg, golang, make, make-vg, nasm-x86, node, perl, pypy, pypy3, python, python3, rust, swift.