Error: Module did not self register

Error: Module did not self register

我有完全相同的错误

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

这可能类似于:

但不同之处在于,我正在使用 docker 构建映像,因此我无法返回并删除 node_modules 并为每个容器再次执行 npm install。
有没有更优雅的解决方案?

Docker 的优点之一是升级映像和替换容器应该很容易。如果你有一堆 Node 应用程序,它们都是从同一个图像开始的:

FROM node

然后您只需要重建您的镜像,它们将使用最新版本的 Node 基础镜像(目前有 NPM 3.10.3)。在非生产环境中,只需停止您的容器并 运行 从新图像中创建一个新容器。在生产中,查看 rolling upgrades in swarm mode.

理想情况下,您应该致力于一个自动化的工作流程,您可以在其中提交更改,构建一个新图像并替换您的 运行ning 容器。您不需要对 运行ning 容器进行任何维护 - 它们是一次性的。

我在 运行 docker-compose 时收到此错误。另外,在我的 docker-compose 中,我挂载了当前文件夹。为了解决这个问题,我用 npm rebuild.

重建了我的节点模块