【发布时间】:2014-12-29 10:33:33
【问题描述】:
创建一个Dockerfile 来安装我们创建的节点框架(根据我之前的帖子here):
# Install dependencies and nodejs
RUN apt-get update
RUN apt-get install -y python-software-properties python g++ make
RUN add-apt-repository ppa:chris-lea/node.js
RUN apt-get update
RUN apt-get install -y nodejs
# Install git
RUN apt-get install -y git
# Bundle app source
ADD . /src
# Create a nonroot user, and switch to it
RUN /usr/sbin/useradd --create-home --home-dir /usr/local/nonroot --shell /bin/bash nonroot
RUN /usr/sbin/adduser nonroot sudo
RUN chown -R nonroot /usr/local/
RUN chown -R nonroot /usr/lib/
RUN chown -R nonroot /usr/bin/
RUN chown -R nonroot /src
USER nonroot
# Install app source
RUN cd /src; npm install
问题是 npm 不希望以 root 身份运行——有没有办法链接一系列 sudo useradd 命令来创建一个具有 sudo 权限的临时用户,然后我可以切换到 USER 运行npm install?
编辑:更新了上述内容,现在在成功创建用户并进入npm install 行并窒息后出现此问题:
Error: Attempt to unlock javascript-brunch@1.7.1, which hasn't been locked
at unlock (/usr/lib/node_modules/npm/lib/cache.js:1304:11)
at cb (/usr/lib/node_modules/npm/lib/cache.js:646:5)
at /usr/lib/node_modules/npm/lib/cache.js:655:20
at /usr/lib/node_modules/npm/lib/cache.js:1282:20
at afterMkdir (/usr/lib/node_modules/npm/lib/cache.js:1013:14)
at /usr/lib/node_modules/npm/node_modules/mkdirp/index.js:37:53
at Object.oncomplete (fs.js:107:15)
If you need help, you may report this *entire* log,
including the npm and node versions, at:
<http://github.com/npm/npm/issues>
【问题讨论】:
-
有什么理由不使用“npm -g install”来全局安装包?
-
是的,这是安装
package.json的所有内容,不是一个包。 -
您介意提供例如您正在使用的 package.json 文件,以帮助其他人重现同样的问题?
-
我得到了同样的错误。您是否以某种方式解决了此尝试解锁问题?
-
我用 su -l noroot -c 'npm install' 而不是 USER 语句解决了这个问题。