错误:/directory/node_modules/canvas/build/Release/canvas.node:无效的 ELF 标头 Ubuntu 20.04

错误:/directory/node_modules/canvas/build/Release/canvas.node:无效的 ELF 标头 Ubuntu 20.04

我尝试启动 JavaScript 文件后一直收到错误

Error: /directory/node_modules/canvas/build/Release/canvas.node: invalid ELF header

有什么方法可以解决这个问题吗

节点:16.15.1

答案1

在我的例子中,我必须将 node_modules 添加到 .dockerignore 文件中

答案2

如果node_modules未将文件夹添加到.dockerignore,则该文件夹中的所有文件也将包含在构建上下文中,并且当在容器内运行 npm install 时,Docker 会尝试重新安装依赖项(包括二进制模块)。但是,在本地计算机上构建的二进制文件可能与 Docker 容器不兼容,从而导致无效的 ELF 标头错误。

添加node_modules允许.dockerignoreDocker 不将此文件夹包含在构建上下文中,并使用本地机器上安装的依赖项,包括正确构建的模块。

要将 node_modules 添加到 .dockerignore,请在与 Dockerfile 相同的目录中创建一个 .dockerignore 文件并添加以下行:

node_modules

相关内容