2016-09-30 260 views
0

我有说错误:模块没有自我注册

at bindings (/node_modules/pg-native/node_modules/libpq/node_modules/bindings/bindings.js:76:44) 

这似乎类似于完全相同的错误:
Error: Module did not self-register.
但不同的是,我使用的码头工人建立图像,因此我不可能回去并删除node_modules,并为每个容器再次执行npm install。
有没有更优雅的解决方案?

+0

您是否更新过节点或npm版本? – abdulbarik

+0

是的,我正在使用最新版本。我通过执行'npm rebuild'找到了一个修复程序。谢谢你的帮助。 – raviabhiram

回答

0

我在运行docker-compose时遇到了这个错误。另外,在我的docker-compose中,我安装了当前文件夹。为了解决这个问题,我使用npm rebuild重建了我的节点模块。

0

Docker的优点之一是它应该很容易升级您的图像并替换您的容器。如果你有一堆节点的应用程序,所有来自同一图像开始:

FROM node 

然后你只需要重建的图像,他们将使用最新版本的节点上基本图像(目前有NPM 3.10.3) 。在非生产环境中,只需停止容器并从新映像运行一个新容器。在制作中,请看rolling upgrades in swarm mode

理想情况下,您应该努力实现自动化的工作流程,在该工作流程中进行更改,构建新的映像并替换正在运行的容器。您不需要对运行的容器进行任何维护 - 它们都是一次性的。

+0

谢谢埃尔顿。我认为解决方案是在用'npm rebuild'安装节点并修复错误之后执行重建。 – raviabhiram

相关问题