【问题标题】:Can't push to the heroku无法推送到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 应用程序。

标签: git scala heroku intellij-idea


【解决方案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)
              猜你喜欢
              • 1970-01-01
              • 2022-01-12
              • 2018-07-06
              • 1970-01-01
              相关资源
              最近更新 更多