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

时间:2017-07-30 11:36:11

标签: node.js docker

我有一个在VM中运行良好的自定义node.js应用程序,但是当我尝试在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" ]

我已经添加了here提到的建议但没有成功(安装node-gyp和libxmljs,执行npm rebuild)。我正在使用"bcryptjs": "^2.3.0"

任何有关如何使其工作的建议表示赞赏! :)

1 个答案:

答案 0 :(得分:0)

问题的根本原因是使用co-bcrypt。从package.json中删除它并用bcryptjs替换所有require语句后,错误就消失了。