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: ----->Discovering process types...Procfile declares types -> 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 应用程序”