Difference between revisions of "Запуск в контейнере docker"
(Created page with "Навигация: Главная страница/Система ejudge/Инсталляция/Запуск в контейнере docker") |
(...) |
||
Line 1: | Line 1: | ||
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Инсталляция]]/[[Запуск в контейнере docker]] | Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Инсталляция]]/[[Запуск в контейнере docker]] | ||
+ | |||
+ | Поддерживается с версии [[Изменения в версии 3.10.1|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 | ||
+ | |||
+ | Содержимое БД и каталогов турниров хранятся на отдельных томах и сохранятся | ||
+ | в случае пересоздания контейнера (например, при обновлении версии). | ||
+ | |||
+ | === Особенности === | ||
+ | |||
+ | <b>Не используйте данный контейнер в production-окружении!</b> | ||
+ | |||
+ | Все компоненты 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. |
Latest revision as of 20:40, 30 January 2023
Навигация: Главная страница/Система 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.