Heroku 推送被拒绝,未检测到 Cedar 支持的应用程序

Posted

技术标签:

【中文标题】Heroku 推送被拒绝,未检测到 Cedar 支持的应用程序【英文标题】:Heroku push rejected, no Cedar-supported app detected 【发布时间】:2012-01-11 18:52:10 【问题描述】:

我正在使用 Rails 3.1.3 创建一个 Rails 应用程序:

git init
git remote add heroku <my heroku repo>
git add .
git commit -a -m "First commit"
git push heroku master

得到:

Counting objects: 102, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (86/86), done.
Writing objects: 100% (102/102), 315.47 KiB, done.
Total 102 (delta 3), reused 0 (delta 0)

**-----> Heroku receiving push
 !     Heroku push rejected, no Cedar-supported app detected**

To git@heroku.com:electric-dusk-3217.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to <my heroku rep>

【问题讨论】:

你试过运行heroku create [appname]吗? 我在 cedar 堆栈上创建了应用程序:heroku create --stack cedar 这个错误到底是什么意思? 【参考方案1】:

我遇到了类似的问题,但使用的是 Django(错误地命名为“requirements.txt”)。我想在这里概括其他答案,当您收到此错误时,这是​​因为 Heroku 缺少一些用于识别您的应用程序(及其类型)的关键文件。

php: index.php python:requirements.txt ruby: Gemfile # 注意大写 节点:package.json

【讨论】:

在这里找到了这个问题的另一个答案(重新初始化 git repo):***.com/questions/9305370/… 友情提示:还有一个 Procfile,如果运行 Web 应用,请确保通过 Procfile 启用了指向正确脚本的 Web 服务。还要确保在 Heroku admin 中为应用打开了 web dyno。 remote: -----&gt;Discovering process types...Procfile declares types -&gt; web 是通过我的 Procfile 谢谢,添加 requirements.txt 对我有帮助!请注意,您应该提交它(将其添加到 git 存储库),然后尝试再次推送..【参考方案2】:

问题是我的“Gemfile”被命名为“gemfile”

【讨论】:

@Whitecolor 有完全相同的问题,您的解决方案有效!之后又遇到了其他复杂的问题。不过谢谢。 这不仅发生在我身上,而且以一种不明显的方式发生。在 OSX 中工作,即使使用名为 Gemfile 的文件,如果我执行 vi gemfile,它会打开我的 Gemfile,然后在保存时将其重命名为 gemfile 而不会发出警告! 我想这是一个很好的理由来设置一个区分大小写字符的分区...... 什么是“Gemfile”?我有一个 html 游戏,我想把它推到 heroku 中。我得到同样的错误【参考方案3】:

我遇到了这个错误消息,但我的问题是我的 rails 应用程序不在我的 git repo 的根目录中。将文件移动到根目录后,一切正常。

【讨论】:

这似乎是一个糟糕的解决方案。是否有适当的方法在子目录中推送应用程序? 我正在使用git-subtree。我安装时遇到问题,所以我使用了this help 我遇到了同样的问题 - 我刚开始使用 Heroku 开始使用 RoR 并遇到了这个问题。感谢您的修复。 我一直在检查命令行,它是“正确的”,但后来我注意到我在 /home/myapp/myapp...doh... 我的情况也是如此。我git init 我的应用程序文件夹作为 git 根目录,然后推送到 heroku。谢谢。【参考方案4】:

Heroku 通过查找特定项目文件来检测受支持的应用程序。要查找您的语言要求,start here。

对于 Node.js,您需要 package.json。 对于 Python 应用程序,您需要 requirements.txt。 等

【讨论】:

【参考方案5】:

未与新应用关联,但是...在 heroku 上安装自定义 BUILDPACK 后,我遇到了同样的错误消息,然后忘记了它。下次我去部署到 heroku 时,我看到了:

-----> Fetching custom git buildpack... done

 !     Push rejected, no Cedar-supported app detected

解决方法是检查:

 heroku config

在那里,我发现了一个名为 BUILDPACK_URL 的 Var,我必须取消设置:

heroku config:unset BUILDPACK_URL

...瞧!

【讨论】:

哇,这是一个艰难的过程。谢谢!【参考方案6】:

另一个原因:我在推动 master,同时在非 master 分支上工作。我的 master 分支没有 requirements.txt。

我不想从 master 推送,但是 heroku 只关注 master 分支。解决方案是将我的本地分支推送到 heroku 的 master 分支:

git push heroku local_branch:master

【讨论】:

你是我的英雄!我花了几个小时试图找到这个> 【参考方案7】:

Rails 应用程序出现此错误的另一个原因:当我们没有从 Gemfile.lock 文件中删除 git 合并冲突时,我们发生了此部署错误。

【讨论】:

【参考方案8】:

我有同样的问题。 “Gemfile”包含在“.gitignore”中,因此不是部署的一部分。 Heroku 需要用于 Rails 项目的 Gemfile。

【讨论】:

【参考方案9】:

我通过对我的 Gemfile 进行表面更改并重新提交来解决此问题。由于某种原因,它没有包含在我的最后一次提交中。

【讨论】:

【参考方案10】:

我在这里遇到了同样的问题。 我的支票如下: 1. 确保“工头启动”在本地运行良好。 2. 确保在您的 heroku 帐户上只创建一个新应用。 希望对您有所帮助。

【讨论】:

【参考方案11】:

我按照RailsTutorial.org 的步骤操作,出现了这个错误。这篇文章的答案都没有奏效。然后我看到this comment 导致this answer 这是唯一对我有用的东西,这样也可以解决其他人在本教程中遇到的问题。

【讨论】:

我认为原因是我在 RAIL_PROJECT 目录的父目录上初始化了 repo。所以make cedar无法识别app是什么类型的。感谢您的回答!【参考方案12】:

当基于静态文件(仅 html、css 和 js)的项目出现此问题时,建议遵循以下准则: https://discussion.heroku.com/t/push-rejected-no-cedar-supported-app-detected/640/3

【讨论】:

【参考方案13】:

我也遇到了基于 django 的应用程序的问题。一切似乎都很好:文件名和其他设置。

问题是在 heroku 控制台中有一个为 node.js 定义的 BUILDPACK_URL 设置 - 因此 django 应用程序被拒绝。

【讨论】:

以上是关于Heroku 推送被拒绝,未检测到 Cedar 支持的应用程序的主要内容,如果未能解决你的问题,请参考以下文章

Heroku 上的 Sinatra/Thin 未检测到 HTTP 流连接 (SSE) 客户端断开连接

升级到 python 3.6.5 时,Django 应用推送在 Heroku 上被拒绝

Heroku 会抛出类似“推送被拒绝,未经授权的访问”这样的错误。 [关闭]

Heroku 部署 - “推送被拒绝,无法编译 Node.js 应用程序”

Heroku 构建失败 - 推送被拒绝,无法编译 node.js 应用程序,无法缩小包,许多错误

Heroku 推送被拒绝,无法通过 Bundler 安装 gem