Как собрать node-addon-api изолированный от ОС? - PullRequest
0 голосов
/ 05 ноября 2019

У меня есть бэкэнд-сервер с nodejs, развернутый на heroku.

Проблема в том, что мне нужно использовать некоторую программу на фортране с dll-файлом (существует как 64-битная, так и 32-битная версия, и используется 64-немного).

Чтобы обработать их все, я написал некоторый код C ++ (node-addon-api).

C ++ с компоновкой node-gyp в файл .node, и он работал в моем локальномenvironment.

Однако на heroku не получилось со следующими ошибками.

Error: /app/refprop/refpropNapi.node: invalid ELF header

И я нашел объяснение по поводу ошибки заголовка ELF. После некоторых поисков я нашел ответ ниже, и он, кажется, точно соответствует моему случаю.

Это происходит, когда вы строите одну архитектуру, а затем пытаетесь использовать одно и то же встроенное дополнение в другой архитектуре (или платформе). в некоторых случаях.

Моей средой разработки для node-addon-api была 64-разрядная Windows 10. Я предполагаю, что heroku использует ОС Linux, и поэтому скомпилированный файл узла не работает.

В заключение у меня есть 3 вопроса.

  1. Будет ли компиляция C ++ и dll на Docker (я не знаю, как встроить Docker подробно) создаст узел, который можетбыть запущенным на heroku?

  2. НЕОБХОДИМО ли докеризовать и бэкэнд, и node-addon-api, чтобы убедиться, что они работают в одной ОС?

  3. Кажется, что развертывание с использованием Docker делает IaaS намного проще, что заставляет меня избегать PaaS (heroku), но у меня нет никакого опыта. Это будет способ убежать от heroku? (Я не хочу работать ссервера больше, потому чтоУ меня сейчас достаточно работы ...)

...