【问题标题】:Heroku deploy Ruby app: failed to push some refsHeroku 部署 Ruby 应用程序:未能推送一些 refs
【发布时间】:2017-08-17 13:47:34
【问题描述】:

我尝试部署我的 ruby​​ 应用程序。我收到此错误:

[X] Shell command exited with status code 32512!

=====================[ CRASH REPORT ]=====================

COMMAND:
cd /tmp/build_b8047ce119e9ca6cd5474afa9f1e57f9/vendor/bundle/ruby/2.4.0/bundler/gems/accounting-d82701194c3b
The latest bundler is 1.15.3, but you are currently running 1.15.2.
To update, run `gem install bundler`/accounting-frontend && yarn install

ERROR:


==========================================================

 !     Push rejected, failed to compile Run app.

 !     Push failed
Verifying deploy...

 !  Push rejected to my-app-dev.

To https://git.heroku.com/my-app-dev.git
 ! [remote rejected]   24f2f837b3645a2c10bf2484322f8dd5d36ad2d5 -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/my-app-dev.git'
    to retry, use: --limit @/Users/username/repositories/sd/playbooks/my-app/dev.retry

PLAY RECAP *********************************************************************
127.0.0.1                  : ok=3    changed=2    unreachable=0    failed=1

我有一些作为 gem 包含的存储库(如您将在上面的消息中看到的 accounting)。

我认为我需要使用捆绑程序版本 1.15.2 重建我的 Gemfile.lock。这没有帮助。

正如错误所说,应用程序无法编译。你知道为什么,或者你知道找出真正问题的好方法吗?

我对部署不太熟悉,所以如果您需要一些信息,请发表评论,我会更新这个问题。

【问题讨论】:

  • 会计是您保存在私人仓库中的宝石吗?如果是这种情况,您需要使用 buildpack。查看this one
  • 同时尝试粘贴heroku logs。它们可能包含一些有用的信息来调试它。
  • 是的,会计是作为宝石包含的私人回购。它托管在 Gitlab 上。我将搜索 Gitlab 的 buildpack。
  • 这肯定是问题所在。不幸的是,我对 Gitlab 无能为力。

标签: ruby-on-rails ruby heroku deployment


【解决方案1】:

我发现了错误。正如日志所说,它找不到命令TheTo。您可以看到有关捆绑程序版本的警告。这两行都以这些词开头。所以脚本也尝试运行这些行。那是我脚本的一些问题。

我运行bundle show GEMNAME 并将该输出用作cd 的路径。输出包含有关我在路径中使用的捆绑程序版本的警告。现在只使用输出的第一行修复了这个问题。

【讨论】:

    【解决方案2】:

    这可能是您的 gemfile.lock 文件的问题。如果您添加了任何 gem,请执行捆绑安装,然后 git addgit commit 并推送到 Heroku。

    如果上述解决方案不起作用,请尝试执行rake assets:precompile,然后执行git addgit commitgit push

    如果这也不起作用,那么问题可能出在您的脚本文件上。我的意思是 JavaScript/jQuery/CoffeeScript 文件。尝试编译脚本文件以查找本地错误。

    js_path = "#{Rails.root}/app/assets/javascripts/**/*.js"; 
    Dir[js_path].each do |file_name|
      puts "\n#{file_name}"
      puts Uglifier.compile(File.read(file_name))
    end
    

    【讨论】:

      猜你喜欢
      • 2020-02-18
      • 2019-06-24
      • 2014-06-26
      • 2021-03-07
      • 1970-01-01
      • 2016-10-10
      • 2018-06-10
      • 2018-08-05
      相关资源
      最近更新 更多