npm安装在docker内部的私有存储库中而不运行prepare hook

时间:2019-04-26 10:51:58

标签: linux docker npm npm-install alpine

从私有git仓库安装时,似乎没有调用linux prepare hook。我正在使用高山图像,并尝试在npm install中构建我的私有软件包,但是准备不调用钩子。至少如果我进入node_modules文件夹中,检查lib文件夹是否存在,就不在这里。

这是一种测试dockerfile,我知道ssh密钥应该至少通过中间阶段注入,以免泄漏它们。只是为了测试,我照原样完成了。

FROM node:8-alpine

RUN apk --update add --no-cache openssh-client
RUN apk add git

# add credentials on build
RUN mkdir /root/.ssh/
COPY ./id_rsa /root/.ssh/
RUN chmod 400 /root/.ssh/id_rsa

# make sure your domain is accepted
RUN touch /root/.ssh/known_hosts
RUN ssh-keyscan bitbucket.org >> /root/.ssh/known_hosts

WORKDIR /app

COPY package.json .
#COPY package-lock.json .

RUN npm install

COPY index.js .

ENTRYPOINT [ "node", "index.js" ]

部分代码是私有的,因此我不能共享它,但是它已成功安装在Windows计算机下,所有序列和最终程序包都可以正常运行。在这个泊坞窗示例中,不是。

我看了这个问题 npm v6.4.1 not running `prepare` inside docker 但是建议的解决方案对我没有用,所以也许还有更多。

如何启用在npm install的高山图像上运行的准备挂钩?

1 个答案:

答案 0 :(得分:1)

我的CI管道存在相同的问题。使用-ddd标志运行后,我看到了警告prepare: cannot run in wd。允许不安全权限(npm config set unsafe-perm true)之后,执行了prepare脚本,并构建了软件包。

来源:https://npm.community/t/silent-npm-warn-cannot-run-in-wd-during-preparegitdep/8329/2