无法推送到heroku
Posted
技术标签:
【中文标题】无法推送到heroku【英文标题】:Can't push to the heroku 【发布时间】:2016-12-14 22:35:56 【问题描述】:我正在将当前的 git 存储库推送到 heroku。 该在线应用程序是使用 Scala 和 IntelliJ 开发的。 而且我不知道如何解决这个错误。
$ git push heroku master
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 531 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: ! No default language could be detected for this app.
remote: HINT: This occurs when Heroku cannot detect the buildpack to use for this application automatically.
remote: See https://devcenter.heroku.com/articles/buildpacks
remote:
remote: ! Push failed
remote: Verifying deploy....
remote:
remote: ! Push rejected to salty-coast-14102.
remote:
To https://git.heroku.com/salty-coast-14102.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/salty-coast-14102.git'
【问题讨论】:
您是否指定了package.json
?
package.json
适用于 Node.js 应用程序,但这似乎是一个 Scala 应用程序。
【参考方案1】:
如果您是python
用户 -
创建一个requirements.txt
文件最好使用pip freeze > requirements.txt
。
添加、提交并再次尝试推送。
如果这不起作用,请尝试删除 .git
(注意这可能会删除相关的 git 历史记录)并再次执行上述步骤。
为我工作。
【讨论】:
【参考方案2】:您也可以从 UI 中手动选择 webpack 构建
【讨论】:
从哪里可以找到这个 @Dhiru,在“设置”选项卡中。【参考方案3】:如果你使用 django 应用部署在 heroku 上
确保将 request 库放入 requirements.txt 文件中。
【讨论】:
【参考方案4】:在创建应用时指定 buildpack。
heroku create appname --buildpack heroku/python
【讨论】:
【参考方案5】:确保您的项目根目录中有package.json
。
快乐编码:)
【讨论】:
【参考方案6】:您需要按照此处显示的说明进行操作,根据您的情况遵循 scala 配置:
https://devcenter.heroku.com/articles/getting-started-with-scala#introduction
设置入门包后,调整默认配置并应用到您的本地存储库。它应该可以工作,就像我使用 NodeJS 一样。
HTH! :)
【讨论】:
【参考方案7】:项目的根目录中必须有一个.git
目录。
如果您没有看到该目录运行git init
,然后重新关联您的遥控器。
像这样:
heroku git:remote -a herokuAppName
git push heroku master
【讨论】:
@ciscokidx 请说明您的解决方案如何解决问题No default language could be detected for this app.
。您的回答似乎与问题无关?
@JK Heroku 似乎也要求 .git 目录位于根文件夹中。这对我有用。
在提供的日志中 git appers 和 git 正在运行,所以这个答案是完全不相关的。
将我的应用程序放在 git repo 的子文件夹中,这导致了问题中描述的错误。这个答案帮助我意识到我应该将应用程序移至根目录。谢谢。
解决了我的问题。我认为使用 PyCharm,项目默认包含一个 .git 目录,但它没有。非常感谢。【参考方案8】:
如果您的应用是 Scala 应用,它的根目录中必须有一个 build.sbt
,并且该文件必须签入 Git。您可以通过运行来确认这一点:
$ git ls-files build.sbt
如果该文件存在并已签入 Git,请尝试运行以下命令:
$ heroku buildpacks:set heroku/scala
【讨论】:
【参考方案9】:阅读此文档,它将向您解释该怎么做。https://devcenter.heroku.com/articles/buildpacks
在应用程序上设置构建包
您可以通过设置 buildpack 值来更改应用程序使用的 buildpack。 下次推送应用时,将使用新的 buildpack。
$ heroku buildpacks:set heroku/php
构建包集。 random-app-1234 的下一个版本将使用 heroku/php。 运行
git push heroku master
以使用此 buildpack 创建新版本。
这就是它不适合你的原因,因为你没有设置它。
...下次推送应用时,将使用新的 buildpack。
You may also specify a buildpack during app creation
:
$ heroku create myapp --buildpack heroku/python
【讨论】:
感谢您的回答。但现在它告诉我Failed to detect set buildpack https://codon-buildpacks.s3.amazonaws.com/buildpacks/heroku/nodejs.tgz
如果它是一个节点项目,你还需要根目录下的 package.json。
默认情况下您不必设置 buildpack。 Heroku 将自动检测支持的语言(其中一种是 Scala)。这里的问题是它没有检测到 Scala。
如果我不想设置 buildpack 怎么办?如果我只想部署一些数据文件怎么办?
修复有任何更新吗? (假设我们不需要为 python 设置 buildpack)以上是关于无法推送到heroku的主要内容,如果未能解决你的问题,请参考以下文章
无法为 nodejs web3 推送到 heroku - 它正在尝试找到 web3@1.0.0-beta.42 postinstall