错误:libnode.so.64:无法打开共享对象文件:没有这样的文件或目录 - Docker 容器

问题描述 投票:0回答:1

我在 ubuntu 上使用以下软件包创建了一个 docker 容器:default-jdk、node.js、curl、git、 npm、python、make、gcc。

我正在尝试在容器内运行此工具https://github.com/oasis-tcs/odata-openapi/tree/master/tools。所有必需的依赖项(如 node-gyp)均已安装,并且可以使用 npm 安装该工具本身,不会出现任何错误,正如自述文件中所述。

但是,当尝试执行命令时,我总是收到此错误:

Error: libnode.so.64: cannot open shared object file: No such file or directory
        at Object.Module._extensions..node (internal/modules/cjs/loader.js:1025:18)
        at Module.load (internal/modules/cjs/loader.js:815:32)
        at Function.Module._load (internal/modules/cjs/loader.js:727:14)
        at Module.require (internal/modules/cjs/loader.js:852:19)
        at require (internal/modules/cjs/helpers.js:74:18)
        at Object.<anonymous> (/odata-openapi/tools/node_modules/java/lib/nodeJavaBridge.js:21:16)
        at Module._compile (internal/modules/cjs/loader.js:959:30)
        at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10)
        at Module.load (internal/modules/cjs/loader.js:815:32)
        at Function.Module._load (internal/modules/cjs/loader.js:727:14)

到目前为止,我尝试重新安装node.js、node-gyp、安装node-libs等软件包和不同的Ubuntu版本。该工具在主机系统上运行良好。

有谁知道如何处理吗?

node.js docker ubuntu node-modules lib
1个回答
2
投票

我怀疑你的nodejs安装不匹配。

安装正确版本的nodejs后,制作

npm i
非常重要。

在主机上,当 Nodejs 在

npm i
之后升级时,就会出现这种情况。在这种情况下,请执行以下操作:

npm clean-install

瞧。

对于您的特定 docker 用例:您应该确保安装了 Nodejs 并在容器内执行了

npm i
,通常在
RUN
中使用
Dockerfile
命令。这样你就不会出现不匹配的情况。

但是,如果您在主机上安装 Nodejs 并将卷共享到容器,就会出现这种情况:避免这种情况并转向我之前提到的内容。

© www.soinside.com 2019 - 2024. All rights reserved.