在Dockerfile中,我们有以下命令:CMD ["npm", "run", "start"]
。但是,在构建实际镜像的CI中运行它时,npm会尝试自我更新(因为我们使用的不是最新的npm版本)。并由于权限不足错误而失败。
基本镜像定义为:FROM node:8.16
,此版本包括npm 6.4.1。
我搜索了一下,找不到一种告诉npm在运行某些脚本时不要尝试更新的方法。
最佳答案
该镜像带有npm version 6.4.1
,基本镜像中没有更新NPM本身的逻辑,但它带有6.4.1
。您需要在Dockerfile中降级npm版本的所有内容。
在下面的示例中,基础镜像具有6.4.1
,而Dockerfile会将版本降级为npm@3.10.10
。将版本替换为您所需的版本。
FROM node:8.16
COPY . /
RUN npm install -g npm@3.10.10
CMD ["npm", "run", "start"]
在容器中运行命令,并使用
npm -v
检查NPM的版本,您应该会看到3.10.10
docker exec mynode bash -c "npm -v"
关于docker - 运行npm run start时如何禁止npm self 升级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57575486/