一尘不染

Dockerfile / npm:创建一个sudo用户以运行npm install

docker

创建一个Dockerfile安装我们已经创建(每个我先前的职位于节点框架在这里):

# 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>

阅读 580

收藏
2020-06-17

共1个答案

一尘不染

要解决“尝试解锁”问题,请尝试首先通过发出以下命令来清理npm缓存:

npm cache clean

之后,运行

npm install
2020-06-17