Difference between revisions of "Запуск в контейнере docker"

From EjudgeWiki
 
(...)
 
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.