本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
Heroku Cloud Native Buildpack Builder(以下简称"Heroku CNB Builder")是基于 Cloud Native Buildpacks(CNB)规范的预配置构建环境镜像。该镜像集成了 Heroku 官方维护的 Buildpack 集合,旨在提供标准化、自动化的应用构建流程,帮助开发者将源代码快速构建为 OCI 兼容的容器镜像,无需手动编写 Dockerfile。其核心用途是简化容器化构建流程,降低多语言应用的容器化门槛,同时确保构建产物符合行业标准。
严格遵循 CNB v3 及以上规范,兼容 OCI 镜像标准,支持与 pack CLI、Tekton、GitHub Actions 等主流 CNB 工具链集成。
内置 Heroku 官方 Buildpacks,覆盖主流开发语言和框架,包括但不限于:
npm install、pip install、mvn package 等)--buildpack 参数添加自定义 Buildpacks(本地路径或 Git 仓库)pack 的缓存卷机制加速重复构建)兼容 Heroku 应用配置模型,可直接复用 Heroku 应用的环境变量、构建配置(如 Procfile、app.json)等,降低跨环境迁移成本。
开发者可直接基于源代码构建容器镜像,跳过 Dockerfile 编写步骤,加速本地开发-测试循环。
作为标准化构建环节嵌入 CI/CD 流程(如 GitHub Actions、GitLab CI、Jenkins),实现"代码提交→自动构建→镜像推送"的全自动化。
统一多语言项目的容器化流程,避免为不同语言维护差异化的 Dockerfile。
为团队提供一致的构建环境,减少"本地可运行、构建后不可运行"的环境差异问题。
适用于希望减少 Dockerfile 维护工作量(如基础镜像更新、安全补丁管理)的团队或项目。
使用 Heroku CNB Builder 需安装以下工具:
在源代码根目录执行以下命令,使用 Heroku CNB Builder 构建镜像:
pack build <镜像名称> --builder heroku/buildpacks:20
参数说明:
<镜像名称>:自定义镜像标签(如 my-node-app:latest)--builder heroku/buildpacks:20:指定使用 Heroku CNB Builder(20 为 Stack 版本,对应 Heroku-20 运行时,其他版本如 22 对应 Heroku-22)示例(构建 Node.js 应用):
# 克隆示例 Node.js 应用 git clone [***] && cd node-js-getting-started # 构建镜像 pack build my-node-app --builder heroku/buildpacks:20
构建完成后,使用 Docker 运行镜像:
docker run -p 3000:3000 my-node-app
访问 http://localhost:3000 即可查看应用。
通过 --env 参数注入构建时环境变量(影响依赖安装、构建逻辑):
pack build my-app --builder heroku/buildpacks:20 \ --env NODE_ENV=production \ # Node.js 环境(生产/开发) --env MAVEN_OPTS="-Xmx512m" # Java Maven 构建参数
通过 --buildpack 参数追加自定义 Buildpacks(优先级高于默认 Buildpacks):
# 使用本地自定义 Buildpack + Heroku 官方 Buildpacks pack build my-app --builder heroku/buildpacks:20 \ --buildpack ./my-custom-buildpack \ # 本地 Buildpack 路径 --buildpack [***] # Git 仓库 Buildpack
通过 --cache-volume 复用构建缓存,加速重复构建(需提前创建 Docker 卷):
# 创建缓存卷 docker volume create my-app-cache # 使用缓存构建 pack build my-app --builder heroku/buildpacks:20 \ --cache-volume my-app-cache
在 docker-compose.yml 中配置基于 Heroku CNB Builder 的构建流程:
version: '3.8' services: app: # 基于 Heroku CNB Builder 构建 build: context: . # 源代码根目录 builder: heroku/buildpacks:20 # 指定 builder 镜像 args: # 构建时参数(传递给 pack build) BUILD_ENV: production ports: - "3000:3000" # 端口映射 environment: # 运行时环境变量(容器启动时生效) PORT: 3000
构建并启动服务:
docker-compose up --build
| 参数/环境变量 | 说明 | 示例值 |
|---|---|---|
--builder | 指定 Heroku CNB Builder 镜像(必填) | heroku/buildpacks:20 |
--buildpack | 添加自定义 Buildpack(可多次指定,优先级从高到低) | ./custom-buildpack |
--env <KEY>=<VALUE> | 设置构建时环境变量(影响 Buildpack 行为) | NODE_ENV=production |
--path | 指定源代码路径(默认当前目录) | ../my-app-src |
--cache-volume | 绑定缓存卷(加速重复构建) | my-app-cache |
--publish | 构建完成后推送到镜像仓库(需配置 Docker 登录信息) | --publish my-registry.com/app |
HEROKU_APP_NAME | 构建时指定 Heroku 应用名称(用于关联 Heroku 配置,可选) | my-heroku-app |
20 对应 Ubuntu 20.04,22 对应 Ubuntu 22.04),需根据应用兼容性选择。pack build --no-cache 禁用缓存强制全量构建。免费版仅支持 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