
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
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 应用镜像:
bash# 安装 pack CLI(参考 https://buildpacks.io/docs/tools/pack/) # 构建应用镜像,指定包含 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)自定义行为,常用配置如下:
4.3.1 环境变量
| 环境变量名 | 描述 | 默认值 |
|---|---|---|
NPM_REGISTRY | 指定 npm 依赖仓库地址(如私有仓库) | https://registry.npmjs.org/ |
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 仓库构建
bashpack build my-node-app \ --builder paketobuildpacks/builder:base \ --path ./my-node-project \ --env NPM_REGISTRY=https://npm.example.com \ --env NPM_INSTALL_FLAGS="--no-audit --legacy-peer-deps"
4.3.2 项目配置文件
通过项目根目录的 buildpack.yml 或 project.toml 配置(优先级高于环境变量):
buildpack.yml 示例:
yamlnodejs: npm: registry: "https://npm.example.com" install_flags: "--no-audit --legacy-peer-deps" config: production: true # 等效于 NPM_CONFIG_PRODUCTION=true
project.toml 示例(符合 CNB 项目元数据规范):
toml[[build.env]] name = "NPM_REGISTRY" value = "https://npm.example.com" [[build.env]] name = "NPM_INSTALL_FLAGS" value = "--force"
NPM Install CNB 会将 node_modules 缓存至 CNB 构建层(/layers/npm-install/node_modules),后续构建时若 package.json 和 lock 文件未变更,将直接复用缓存以加速构建。若需强制刷新依赖(忽略缓存),可通过以下方式:
bashpack 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)。您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。



来自真实用户的反馈,见证轩辕镜像的优质服务