Как создать единый контейнер docker (node, python, ffmpeg)?

Моя конечная цель - создать контейнер, в котором будет работать мой Express-сервер. Сервер использует PyShell для запуска Python для анализа видео с помощью FFMPEG. Я уже построил сервер, и он работает хорошо. Проблема в том, что я пытаюсь создать контейнер Docker, который может запускать эту операцию из трех частей, и кажется, что многоступенчатое построение может быть лучшим способом сделать это. Итак, игроки задействованы: Узел (экспресс) Python FFMPEG

Прежде чем я попытаюсь добавить FFMPEG в контейнер, я пытаюсь просто запустить Node и Python в многоступенчатом контейнере сборки.

Мой файл докеров на данный момент:


ОТ узла: 8 как строитель

РАБОЧИЙ КАТАЛОГ / usr / src / app

КОПИРОВАТЬ. .

ЗАПУСТИТЬ npm install

ОТ python: последний

КОПИРОВАТЬ --from = builder. .

CMD ["узел", "server.js"]


при запуске с Docker это приводит к:

module.js:550
    throw err;
    ^

Error: Cannot find module '/server.js'
    at Function.Module._resolveFilename (module.js:548:15)
    at Function.Module._load (module.js:475:25)
    at Function.Module.runMain (module.js:694:10)
    at startup (bootstrap_node.js:204:16)
    at bootstrap_node.js:625:3

Прошу прощения, если это действительно любительский вопрос. Насколько я понимаю, большинство людей используют многоступенчатые сборки, чтобы уменьшить размер своих контейнеров, но похоже, что построить контейнер моей мечты из 3 частей должно быть действительно легко. Спасибо за любую помощь!

Мне кажется, вы не указали правильный путь к вашему файлу

sjdm 26.10.2018 05:56

Спасибо за ответ! Вы имеете в виду, что я неправильно указал путь в файле Docker?

Asciimancer 26.10.2018 05:58

Я считаю, что он имеет в виду, что докеру не удается найти server.js. Вы находитесь в правильном каталоге, когда запускаете команду docker build, так что server.js втягивается в / usr / src / app?

Griffin Meyer 26.10.2018 07:14

да. Dockerfile находится в том же каталоге, что и server.js. Сборка выполняется без ошибок, но ошибка возникает, когда я пытаюсь ее запустить.

Asciimancer 26.10.2018 15:09
0
4
464
1

Ответы 1

Решено! Используется alpine для установки python, node и ffmpeg в процессе сборки.

Другие вопросы по теме