Error: libnode.so.64: cannot open shared object file: No such file or directory - Docker container

Error: libnode.so.64: cannot open shared object file: No such file or directory - Docker container

我在 ubuntu 上使用以下包创建了一个 docker 容器:default-jdk、node.js、curl、git、 npm,python,制作,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 版本。该工具在主机系统上运行良好。

有人知道怎么处理吗?这可能真的很简单,但到目前为止我不知道如何进行。 提前致谢!

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

安装正确版本的 nodejs 后 npm i 很重要。

在主机上,当 nodejs 在 npm i 之后升级时会出现这种情况。在这种情况下做:

npm clean-install

瞧瞧。

对于您的特定 docker 用例:您应该确保安装了 nodejs 并从容器中执行了 npm i,通常在 Dockerfile 中使用 RUN 命令.这样你就不会出现不匹配的情况。

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