Bcrypt: Headlock无效 ELF 从 Docker 和 Sails.JS
我的节点
:
这是我的
:
它成功地工作我。 Redis/Nginx 正确配置
, 但节点的副本给出了此错误:
我正在寻找到处寻找,似乎我找不到工作的解决方案。 我试图使用通常的设置 url:
, 特别是安装
和使用图像
.
当人们试图使用时,我读到这发生了这一切 bcrypt 在 linux env 建成后 OS X /my OS/, 但我认为这不会是一个问题,因为我正在建立一切 docker 和 boot2docker.
</anonymous></anonymous>
Dockfile
:
# Set the base image to ubuntu
FROM ubuntu
# Define working directory
ADD . /src
WORKDIR /src
# Install Node.js & other dependencies
RUN apt-get update && \
apt-get -y install curl && \
apt-get -y install sudo && \
curl -sL [url=https://deb.nodesource.com/setup_0.12]https://deb.nodesource.com/setup_0.12[/url] | sudo bash - && \
apt-get -y install python build-essential nodejs
RUN npm install -g node-gyp && \
node-gyp clean && \
npm cache clean
RUN node -v
# Install nodemon
RUN npm install -g nodemon
ADD package.json /src/package.json
RUN cd /src && npm install
# Expose port
EXPOSE 8080
# Run app using nodemon
CMD npm install; nodemon /src/app.js
这是我的
docker-compose.yml
:
nginx:
build: ./nginx
links:
- node1:node1
- node2:node2
- node3:node3
ports:
- "80:80"
redis:
image: redis
ports:
- "6379"
node1:
build: ./node
links:
- redis
ports:
- "8080"
node2:
build: ./node
links:
- redis
ports:
- "8080"
node3:
build: ./node
links:
- redis
ports:
- "8080"
docker-compose build
它成功地工作我。 Redis/Nginx 正确配置
docker-compose up
, 但节点的副本给出了此错误:
node2_1 | /src/node_modules/bcrypt/node_modules/bindings/bindings.js:83
node2_1 | throw e
node2_1 | ^
node2_1 | Error: /src/node_modules/bcrypt/build/Release/bcrypt_lib.node: invalid ELF header
node2_1 | at Error /native/
node2_1 | at Module.load /module.js:355:32/
node2_1 | at Function.Module._load /module.js:310:12/
node2_1 | at Module.require /module.js:365:17/
node2_1 | at require /module.js:384:17/
node2_1 | at bindings //src/node_modules/bcrypt/node_modules/bindings/bindings.js:76:44/
node2_1 | at Object.<anonymous> //src/node_modules/bcrypt/bcrypt.js:3:35/
node2_1 | at Module._compile /module.js:460:26/
node2_1 | at Object.Module._extensions..js /module.js:478:10/
node2_1 | at Module.load /module.js:355:32/
node2_1 | at Function.Module._load /module.js:310:12/
node2_1 | at Module.require /module.js:365:17/
node2_1 | at require /module.js:384:17/
node2_1 | at Object.<anonymous> //src/api/models/User.js:10:14/
node2_1 | at Module._compile /module.js:460:26/
node2_1 | at Object.Module._extensions..js /module.js:478:10/
node2_1 | 19 Aug 20:21:11 - [nodemon] app crashed - waiting for file changes before starting...
我正在寻找到处寻找,似乎我找不到工作的解决方案。 我试图使用通常的设置 url:
[url=https://deb.nodesource.com/setup]https://deb.nodesource.com/setup[/url]
, 特别是安装
python2.7
和使用图像
ubuntu:15.04
.
当人们试图使用时,我读到这发生了这一切 bcrypt 在 linux env 建成后 OS X /my OS/, 但我认为这不会是一个问题,因为我正在建立一切 docker 和 boot2docker.
</anonymous></anonymous>
没有找到相关结果
已邀请:
7 个回复
小姐请别说爱
赞同来自:
. 使用官方图像时,我收到了此错误 nodejs "onbuild", 这会复制一切......
现在我用:
.dockerignore
dockerfile
Edit
: 官方项目 NodeJS Docker starter image 在 Github 接受了我的要求 pull 为了 ther README, 该规定清楚地忽略了 node_modules.
知食
赞同来自:
然后改变你的要求
现在它完美无瑕。
裸奔
赞同来自:
, 当我得到的时候
并改变了它
, 我能够让一切都在工作。
问题是他试图运行 bcrypt 0.8.5, 而这出于某种原因导致问题。
知食
赞同来自:
. 在我的情况下
我通过添加解决了这个问题
从文件。 .dockerignore.
快网
赞同来自:
不允许您安装包 npm 并强迫你的容器 docker 在飞行中跟踪容器中的这些变化。 我必须每次重建你的容器。 要避免此操作,请仅指定目录 bcrypt 在集装箱汤姆和允许 docker 安装或删除其他包时,跟踪更改:
莫问
赞同来自:
1. 进行删除
2. - 安装 bcrypt 再次
编辑文件的这一部分。 docker, 添加字符串
由于安装时,出现错误发生 bcypt npm 为计算机和操作系统设置推荐版本,但是当您在另一台计算机上时,它就无法正常工作。
小姐请别说爱
赞同来自:
所以你必须添加文件 .dockerignore 并添加这些记录 /与您想要忽略的任何其他文件/
文件夹 node_modules
npm-debug.log
现在,当你构建容器时,它将根据一切建立 OS 容器。