Запуск в контейнере docker
Навигация: Главная страница/Система 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.