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.