BCRYPT-从Alpine:node上的源代码构建,并在使用此docker文件时导致segfaults

时间:2018-07-04 07:45:36

标签: node.js docker bcrypt alpine

构建此docker文件,并尝试使用Bcrypt完成哈希,它将产生段错误,而我不知道为什么要这样做。

FROM mhart/alpine-node:9.1.0

MAINTAINER James Claridge  <james@claridgeand.co>

RUN mkdir /app
WORKDIR /app
RUN apk --no-cache add --virtual builds-deps build-base python
RUN npm config set python /usr/bin/python
RUN npm i -g npm
RUN npm install
RUN npm rebuild bcrypt --build-from-source
RUN apk del builds-deps

2 个答案:

答案 0 :(得分:2)

使用bcryptjs,不需要安装其他依赖项并从源代码进行重建。参见https://www.npmjs.com/package/bcryptjs

如果您真的想使用bcrypt,请参阅其issue on github和其instructions。那里有一些解决方法,但这将需要安装一些其他的依赖项。继续使用bcrypt的最简单方法是不使用高山版本,而是使用节点的ubuntu版本(及其额外开销)。

答案 1 :(得分:1)

问题是您正在尝试安装有错误的npm版本。 在您的安装中,RUN npm install不起作用,因此rebuild bcrypt崩溃了。

之后,您应该在npm install之前添加一些命令,如这些链接中所述:

error-cannot-find-module-npmlog-after-npm-update-g

Issue npm version 5.4.1 solved upgrading to 6.1.0

  

编辑:这是与高山节点版本可用软件包有关的问题:

使用此Dockerfile:

FROM mhart/alpine-node:latest 

MAINTAINER James Claridge  <james@claridgeand.co>

RUN apk update
RUN mkdir /app
WORKDIR /app
RUN apk --no-cache add --virtual builds-deps build-base python
RUN npm config set python /usr/bin/python
RUN npm i -g npm
RUN npm install
RUN npm rebuild bcrypt --build-from-source
RUN apk del builds-deps