docker中的node.js – 找不到绑定文件… / bcrypt_lib.node

我有一个自定义的node.js应用程序在VM中运行良好,但是当我尝试在docker中运行它时,出现错误

Error initializing middleware Error: Could not locate the bindings file. Tried: → /usr/src/app/node_modules/co-bcrypt/node_modules/bcrypt/build/bcrypt_lib.node → /usr/src/app/node_modules/co-bcrypt/node_modules/bcrypt/build/Debug/bcrypt_lib.node → /usr/src/app/node_modules/co-bcrypt/node_modules/bcrypt/build/Release/bcrypt_lib.node → /usr/src/app/node_modules/co-bcrypt/node_modules/bcrypt/out/Debug/bcrypt_lib.node → /usr/src/app/node_modules/co-bcrypt/node_modules/bcrypt/Debug/bcrypt_lib.node → /usr/src/app/node_modules/co-bcrypt/node_modules/bcrypt/out/Release/bcrypt_lib.node → /usr/src/app/node_modules/co-bcrypt/node_modules/bcrypt/Release/bcrypt_lib.node → /usr/src/app/node_modules/co-bcrypt/node_modules/bcrypt/build/default/bcrypt_lib.node → /usr/src/app/node_modules/co-bcrypt/node_modules/bcrypt/compiled/4.8.4/linux/x64/bcrypt_lib.node at bindings (/usr/src/app/node_modules/co-bcrypt/node_modules/bcrypt/node_modules/bindings/bindings.js:88:9) at Object.<anonymous> (/usr/src/app/node_modules/co-bcrypt/node_modules/bcrypt/bcrypt.js:3:35) 

Dockerfile如下所示

 FROM node:4-onbuild # Create app directory WORKDIR /usr/src/app # Install app dependencies COPY package.json . ENV PORT 8080 RUN npm install RUN npm install --unsafe-perm node-gyp RUN npm install --unsafe-perm libxmljs RUN npm rebuild # Bundle app source COPY . . EXPOSE 8080 CMD [ "npm", "start" ] 

我已经添加了这里提到的build议没有成功(安装node-gyp和libxmljs,做npm重build)。 我正在使用"bcryptjs": "^2.3.0"

任何build议如何使其工作,表示赞赏! 🙂

问题的根本原因是使用co-bcrypt 。 将其从package.json删除并用bcryptjsreplace所有require语句bcryptjs ,错误消失。