docker - 运行npm run start时如何禁止npm self 升级?

标签 docker npm

在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.10docker exec mynode bash -c "npm -v"

关于docker - 运行npm run start时如何禁止npm self 升级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57575486/

相关文章:

AWS ECS 中的 Python 应用程序。如何链接到外部应用程序配置?

php - PHP cURL访问失败至远程Docker Hub/注册表

javascript - 错误 : Chunk. 入口点 : Use Chunks. groupsIterable 并按 instanceof 入口点过滤

node.js - 修复 npm 全局包符号链接(symbolic link)

node.js - 找不到 npm 和 node 命令

angularjs - 在 VS2015 Update 2 中使用 npm 安装 Angular 2 包时出现问题

node.js - npm tmp 目录是什么?我可以删除它吗?

python - 在 python 3 docker 镜像中安装 CyLP 的正确方法

postgresql - 使用 dockerfile 创建数据库然后表

windows - 在没有 Linux 服务器的 Windows 10 主机上的 Docker 容器中显示 GUI 应用程序