【发布时间】:2020-03-01 14:04:40
【问题描述】:
我有带有 nodejs 的后端服务器并部署在 heroku 上。
问题是我需要使用一些带有 dll 文件的基于 fortran 的程序(64 位和 32 位都存在,并且使用了 64 位)。
为了处理所有这些,我编写了一些 C++ 代码(node-addon-api)。
使用 node-gyp 的 C++ 构建到 .node 文件,它在我的本地环境中工作。
但是,它在 heroku 上失败并出现以下错误。
Error: /app/refprop/refpropNapi.node: invalid ELF header
我找到了一些关于 ELF 标头错误的解释。经过一番搜索,我在下面找到了答案,它似乎完全适合我的情况。
我的 node-addon-api 开发环境是 Windows 10,64 位。 我的假设是 heroku 使用 Linux 操作系统,这就是编译的节点文件不起作用的原因。
最后,我有 3 个问题。
在 Docker 上编译 C++ 和 dll(我不知道如何在 Docker 中详细构建)会创建可以在 heroku 上执行的节点吗?
是否有必要对后端和 node-addon-api 进行 dockerize 以确保它们在相同的操作系统中运行?
似乎使用 docker 进行部署让 IaaS 变得更容易,这让我摆脱了 PaaS (heroku),但我没有任何经验。这会是逃离heroku的一种方式吗? (我不想更多地使用服务器,因为我现在已经有足够的工作了......)
【问题讨论】:
-
您需要找出那里使用的确切发行版和硬件,然后针对该特定平台进行交叉编译。
标签: c++ docker build node-gyp node-addon-api