TL; DR: как подключить док-контейнерный bash к потоку node.js?
Мне нужно реализовать реле между док-контейнером bashи конечный пользователь.Приложение представляет собой удаленную компиляцию / запуск для c / cpp, Python и JS.Некоторые ссылки ( repl.it , cpp.sh ).Для этого мой план заключается в следующем:
- Создание док-контейнера Ubuntu с требованиями для компиляции и запуска кода пользователя.
- Запрашивает некоторые команды bash для компиляции / запуска кода пользователя.
- И, наконец, выведите результат из консоли bash пользователю.
Я нашел несколько репозиториев с интересным кодом: compilebox , dockerrode и docker-api .
Во-первых, выполните задачу с использованием контейнеров и некоторой чёрной магии обещания / асинхронности для компиляции, передачи в файл и отправки впользователь через HTTP (get / post).Моя проблема с этим связана с тем, что мне нужно создать среду, похожую на оболочку, для моего пользователя.Моя цель - перенести окно браузера через браузер.
2-й и 3-й реализуют API на основе официального API механизма докера HTTP (я взял v1.24, потому что у этого естьобзор для дилетанта как у меня).Оба имеют примеры своего рода потока ввода-вывода между двумя объектами.Например, duplexstream , но из-за какой-то ошибки реализации IO не работает должным образом ( Issue # 455 ).
Итак, моя проблема:Как прикрепить док-контейнер Bash к потоку node.js?Поэтому, когда все готово, все, что пользователь вводит в приложение в браузере, отправляется через HTTP в контейнер bash и вывод также отправляется обратно.