2016-09-30 91 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