无法推送到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的主要内容,如果未能解决你的问题,请参考以下文章

Bitbucket管道无法推送到heroku

将不同的分支推送到 Heroku

无法为 nodejs web3 推送到 heroku - 它正在尝试找到 web3@1.0.0-beta.42 postinstall

在heroku中无法发布推送的docker镜像。

无法推送到heroku

无法推送到 Heroku main