Микросервисное реле между док-контейнером Bash и конечным пользователем - PullRequest
1 голос
/ 15 мая 2019

TL; DR: как подключить док-контейнерный bash к потоку node.js?

Мне нужно реализовать реле между док-контейнером bashи конечный пользователь.Приложение представляет собой удаленную компиляцию / запуск для c / cpp, Python и JS.Некоторые ссылки ( repl.it , cpp.sh ).Для этого мой план заключается в следующем:

  1. Создание док-контейнера Ubuntu с требованиями для компиляции и запуска кода пользователя.
  2. Запрашивает некоторые команды bash для компиляции / запуска кода пользователя.
  3. И, наконец, выведите результат из консоли bash пользователю.

Я нашел несколько репозиториев с интересным кодом: compilebox , dockerrode и docker-api .

Во-первых, выполните задачу с использованием контейнеров и некоторой чёрной магии обещания / асинхронности для компиляции, передачи в файл и отправки впользователь через HTTP (get / post).Моя проблема с этим связана с тем, что мне нужно создать среду, похожую на оболочку, для моего пользователя.Моя цель - перенести окно браузера через браузер.

2-й и 3-й реализуют API на основе официального API механизма докера HTTP (я взял v1.24, потому что у этого естьобзор для дилетанта как у меня).Оба имеют примеры своего рода потока ввода-вывода между двумя объектами.Например, duplexstream , но из-за какой-то ошибки реализации IO не работает должным образом ( Issue # 455 ).

Итак, моя проблема:Как прикрепить док-контейнер Bash к потоку node.js?Поэтому, когда все готово, все, что пользователь вводит в приложение в браузере, отправляется через HTTP в контейнер bash и вывод также отправляется обратно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...