尝试在 Docker 中更新 NPM:代码 EISDIR
Trying to update NPM in Docker: code EISDIR
我正在尝试使用 ["npm","install","-g","npm"]
更新 NPM,但它显示:
Step 4/12 : RUN ["npm", "install", "-g", "npm"]
---> Running in 708a95e71771
npm ERR! code EISDIR
npm ERR! syscall copyfile
npm ERR! path /usr/local/lib/node_modules/npm
npm ERR! dest /usr/local/lib/node_modules/.npm-i9nnxROI
npm ERR! errno -21
npm ERR! EISDIR: illegal operation on a directory, copyfile '/usr/local/lib/node_modules/npm' -> '/usr/local/lib/node_modules/.npm-i9nnxROI'
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2020-12-31T13_38_29_907Z-debug.log
The command 'npm install -g npm' returned a non-zero code: 235
我的 docker 文件:
FROM node
WORKDIR /root
COPY package*.json ./
RUN ["npm", "install", "-g", "npm"]
RUN ["npm", "audit", "fix"]
RUN ["npm", "install"]
COPY ./*.js ./
COPY static ./static
COPY views ./views
COPY conf.d/* /etc/dashboard/
EXPOSE 80
CMD ["node", "index.js"]
所以它看起来像 /usr/local/lib/node_modules/.npm-i9nnxROI 或 /usr/local/lib/node_modules/npm 是一个目录而不是一个文件,但我认为它应该是一个目录。
在我的系统上(Linux 5.10.2-2-MANJARO #1 SMP PREEMPT x86_64 GNU/Linux)它工作但在我的服务器上(Linux 5.4. 0-58-generic #64-Ubuntu SMP x86_64 x86_64 x86_64 GNU/Linux) 它没有。
From node
安装最新的节点,它有 npm 版本 7+。它不稳定有一些问题
使用
FROM node:lts
我正在尝试使用 ["npm","install","-g","npm"]
更新 NPM,但它显示:
Step 4/12 : RUN ["npm", "install", "-g", "npm"]
---> Running in 708a95e71771
npm ERR! code EISDIR
npm ERR! syscall copyfile
npm ERR! path /usr/local/lib/node_modules/npm
npm ERR! dest /usr/local/lib/node_modules/.npm-i9nnxROI
npm ERR! errno -21
npm ERR! EISDIR: illegal operation on a directory, copyfile '/usr/local/lib/node_modules/npm' -> '/usr/local/lib/node_modules/.npm-i9nnxROI'
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2020-12-31T13_38_29_907Z-debug.log
The command 'npm install -g npm' returned a non-zero code: 235
我的 docker 文件:
FROM node
WORKDIR /root
COPY package*.json ./
RUN ["npm", "install", "-g", "npm"]
RUN ["npm", "audit", "fix"]
RUN ["npm", "install"]
COPY ./*.js ./
COPY static ./static
COPY views ./views
COPY conf.d/* /etc/dashboard/
EXPOSE 80
CMD ["node", "index.js"]
所以它看起来像 /usr/local/lib/node_modules/.npm-i9nnxROI 或 /usr/local/lib/node_modules/npm 是一个目录而不是一个文件,但我认为它应该是一个目录。
在我的系统上(Linux 5.10.2-2-MANJARO #1 SMP PREEMPT x86_64 GNU/Linux)它工作但在我的服务器上(Linux 5.4. 0-58-generic #64-Ubuntu SMP x86_64 x86_64 x86_64 GNU/Linux) 它没有。
From node
安装最新的节点,它有 npm 版本 7+。它不稳定有一些问题
使用
FROM node:lts