错误:libnode.so.64:无法打开共享对象文件:没有这样的文件或目录 - Docker 容器
问题:错误:libnode.so.64:无法打开共享对象文件:没有这样的文件或目录 - Docker 容器 我在 ubuntu 上创建了一个带有以下包的 docker 容器:default-jdk、node.js、curl、git、npm、python、make、gcc。 我正在尝试在容器内运行此工具https://github.com/oasis-tcs/odata-openapi/tree/m
问题:错误:libnode.so.64:无法打开共享对象文件:没有这样的文件或目录 - Docker 容器
我在 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 版本。该工具在主机系统上运行良好。
有谁知道如何处理这个?这可能真的很简单,但到目前为止我不知道如何进行。提前致谢!
解答
我怀疑你的 nodejs 安装不匹配。
在安装正确版本的 nodejs 之后制作npm i
很重要。
在主机上,当 nodejs 在npm i
之后升级时会出现这种情况。在这种情况下,请:
npm clean-install
瞧。
对于您的特定 docker 用例:您应该确保您安装了 nodejs 并从容器内执行了npm i
,通常在您的Dockerfile
中使用RUN
命令。这样你就永远不会出现不匹配的情况。
但是,如果您在主机上安装 nodejs 并将卷共享到您的容器,就会出现这种情况:避免这种情况并转向我之前提到的内容。
更多推荐
所有评论(0)