构建此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
答案 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