You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Heroku部署时始终调用nodejs构建,不识别heroku.yml文件如何解决?

问题根因
  • 部署日志显示当前使用Heroku-20栈,属于buildpack模式的传统栈,未正确切换到容器栈,因此不会识别heroku.yml执行Docker构建
  • 应用已绑定3个buildpack,只要存在绑定的buildpack,Heroku会优先走buildpack构建逻辑,忽略容器构建配置
  • heroku.yml存在语法错误:run配置块与build平级,当前配置中run缩进在build块内部,会导致配置解析失败
  • 一键部署场景下,app.json必须保留"stack": "container"配置,该字段是Heroku一键部署识别容器栈的必要参数,之前移除该配置的操作不符合要求
修复步骤
  1. 清除当前应用所有绑定的buildpack
    执行命令:
    heroku buildpacks:clear --app <你的应用名称>
  2. 修正heroku.yml格式,正确配置如下:
build:
  docker:
    web: Dockerfile.heroku
run:
  web: npm start
  1. 恢复app.json中的"stack": "container"配置项
  2. 重新设置应用栈为容器栈,注意正确命令格式:
    heroku stack:set container --app <你的应用名称>
  3. 将上述所有修改提交到Git仓库后重新推送部署,即可触发heroku.yml定义的Docker构建流程
一键部署适配说明

完成上述修改后,仓库内的一键部署链接会自动识别app.json中的容器栈配置,调用heroku.yml完成Docker镜像构建,无需用户额外操作。

内容的提问来源于stack exchange,提问作者Isaac Abadi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 13:06:05