Дочерний процесс Nodejs в контейнере-докере

Я занимаюсь докеризацией адаптивного потокового веб-приложения Node.js HTTP. На сервере Nodejs я использую дочерний процесс (порождение) для вызова FFMPEG для кодирования загруженного пользователем файла с разными скоростями передачи данных, а затем я вызываю MP4Box, чтобы изменить скорость передачи данных.

spawn('MP4Box', argDash, {cwd: './uploads'});
spawn('ffmpeg', arrStr, {cwd: './uploads'});

Как я могу вызвать две программы при запуске сервера nodejs внутри контейнера?


person John Pekl    schedule 11.11.2016    source источник


Ответы (1)


Нет проблем с запуском нескольких процессов в контейнере Docker. Контейнер имеет собственное пространство имен процессов (ps в контейнере покажет только процессы, созданные в этом контейнере, ps на хосте покажет все процессы, включая те, которые находятся внутри контейнера). Демон Docker Engine будет «мониторить» только PID 0, который является вашим процессом ENTRYPOINT/CMD, который, как я предполагаю, будет родительским процессом, породившим MP4Box и ffmpeg.

Я не знаком с этими приложениями, но я думаю, что вы, вероятно, захотите использовать том для ./uploads, чтобы обойти файловую систему union.

person James Moser    schedule 14.11.2016