我尝试启动 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
允许.dockerignore
Docker 不将此文件夹包含在构建上下文中,并使用本地机器上安装的依赖项,包括正确构建的模块。
要将 node_modules 添加到 .dockerignore,请在与 Dockerfile 相同的目录中创建一个 .dockerignore 文件并添加以下行:
node_modules