具有节点bcrypt的Docker – 无效的ELF头

我已经尝试从这篇文章和这篇文章的每个解决scheme

运行docker-compose up时,我找不到解决以下错误的解决scheme:

 module.js:598 return process.dlopen(module, path._makeLong(filename)); ^ Error: /code/node_modules/bcrypt/lib/binding/bcrypt_lib.node: invalid ELF header 

这是我最新的尝试docker-compose.yml

 version: "2" services: app: build: ./client ports: - "3000:3000" links: - auth volumes: - ./client:/code auth: build: ./auth-service ports: - "3002:3002" links: - db volumes: - ./auth-service:/code db: ... 

而我的validation服务Dockerfile:

 FROM node:7.7.1 EXPOSE 3002 WORKDIR /code COPY package.json /code RUN npm install COPY . /code CMD npm start 

在尝试从上述两个链接的每个解决scheme后,我重build容器,并始终导致相同的错误。

另外值得注意的是,当我不使用docker时,服务在本地运行良好。

如何让docker使用bcrypt?

更新

我能够通过执行以下操作来实现它:

  1. find容器的ID: docker ps
  2. 访问容器: docker exec -t -i containerId /bin/bash
  3. 安装bcrypt: npm install bcrypt

这对于便携性来说并不理想