Мне нужно написать бэкенд для соревнования по программированию.
Участники сабмитят свои решения (код) на сервер для проверки. Нужно, чтобы они не вылезли из песочицы в процессе выполнения.
Два вопроса:
1. Что использовать, Docker или lxc?
Я прочитал пару статей об их различиях, но мне все равно не понятно, что подходит лучше для моих нужд.
2. Если я использую lxc, то правильно ли я понимаю, что для каждого нового сабмита, который я хочу запустить и проверить, необходимо делать следующее:
#!/usr/bin/python3
c = lxc.Container("apicontainer")
# или c.clone(...)
c.create("download", lxc.LXC_CREATE_QUIET, {"dist": "ubuntu",
"release": "trusty",
"arch": "i386"})
c.start()
c.execute('score_solution_script_inside_container')
c.shutdown()
c.destroy()
Это как будто бы занимает довольно много времени, наверное нужно действовать иначе?
Спасибо!