本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

NPM Install CNB 是一个基于 Cloud Native Buildpacks (CNB) 规范的构建组件(Buildpack),旨在通过集成 Node Engine CNB 提供的 npm 工具链,自动化管理 Node.js 应用的依赖项安装流程。其核心功能是在应用构建阶段解析并安装 package.json 中声明的依赖,确保构建环境中依赖项的正确配置,为后续应用打包和运行提供基础。
package.json 或 package-lock.json/yarn.lock(若存在),自动执行 npm install 或 npm ci 命令安装依赖。node_modules),减少重复构建时的网络请求和安装时间。package.json 的各类 Node.js 应用(如 Express、React、Vue 等)。package.json 的 Node.js 应用(支持 npm 作为包管理器)。pack CLI、Tekton、GitHub Actions 中的 CNB 插件等)。NPM Install CNB 作为 CNB 构建包,需配合 CNB 构建器(Builder)使用,典型流程如下:
package.json(必要),可选包含 package-lock.json 或 npm-shrinkwrap.json 以锁定依赖版本。paketobuildpacks/builder:base)。pack CLI 或 CNB 兼容工具触发构建,NPM Install CNB 会自动执行依赖安装。pack CLI)使用 pack 命令行工具构建 Node.js 应用镜像:
# 安装 pack CLI(参考 [***] # 构建应用镜像,指定包含 NPM Install CNB 的 builder pack build my-node-app \ --builder paketobuildpacks/builder:base \ # 基础 builder,包含 Node Engine 和 NPM Install CNB --path ./my-node-project \ # 项目根目录(包含 package.json) --env NODE_ENV=production # 可选:设置环境变量
构建过程中,NPM Install CNB 会自动执行:
package.json;npm install(或 npm ci,若存在 lock 文件);node_modules)缓存至构建层,供后续构建复用。NPM Install CNB 支持通过环境变量或项目配置文件(buildpack.yml/project.toml)自定义行为,常用配置如下:
| 环境变量名 | 描述 | 默认值 |
|---|---|---|
NPM_REGISTRY | 指定 npm 依赖仓库地址(如私有仓库) | [***] |
NPM_CONFIG_PRODUCTION | 是否仅安装 dependencies(忽略 devDependencies) | 由 NODE_ENV 决定,production 时为 true |
NPM_INSTALL_FLAGS | 传递给 npm install 的额外参数(如 --force、--no-audit) | 空 |
NODE_ENV | 影响 npm 行为(如 production 模式下不安装 devDependencies) | development |
NPM_CONFIG_CACHE | 自定义 npm 缓存目录(用于依赖缓存优化) | /layers/npm-cache |
示例:使用私有 npm 仓库构建
pack build my-node-app \ --builder paketobuildpacks/builder:base \ --path ./my-node-project \ --env NPM_REGISTRY=[***] \ --env NPM_INSTALL_FLAGS="--no-audit --legacy-peer-deps"
通过项目根目录的 buildpack.yml 或 project.toml 配置(优先级高于环境变量):
buildpack.yml 示例:
nodejs: npm: registry: "[***]" install_flags: "--no-audit --legacy-peer-deps" config: production: true # 等效于 NPM_CONFIG_PRODUCTION=true
project.toml 示例(符合 CNB 项目元数据规范):
[[build.env]] name = "NPM_REGISTRY" value = "[***]" [[build.env]] name = "NPM_INSTALL_FLAGS" value = "--force"
NPM Install CNB 会将 node_modules 缓存至 CNB 构建层(/layers/npm-install/node_modules),后续构建时若 package.json 和 lock 文件未变更,将直接复用缓存以加速构建。若需强制刷新依赖(忽略缓存),可通过以下方式:
pack build my-node-app \ --builder paketobuildpacks/builder:base \ --path ./my-node-project \ --env BP_CLEAR_CACHE=true # 清理所有构建缓存(含依赖缓存)
package-lock.json 或 npm-shrinkwrap.json,此时 NPM Install CNB 会优先使用 npm ci 而非 npm install,减少依赖版本波动。engines 字段在 package.json 中声明 Node.js 版本范围(如 "engines": {"node": ">=18.0.0"})。node_modules 权限,可通过 BP_NODE_USER 环境变量指定运行用户(如 --env BP_NODE_USER=root)。免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429