【问题标题】:Heroku Bundle ErrorHeroku 捆绑错误
【发布时间】:2013-01-11 11:38:24
【问题描述】:

所以 heroku 在使用命令时无法捆绑我的应用程序:

$ git push heroku master

本地打包没问题

$ bundle update

我已经提交并添加了 Gemfile 和 Gemfile.lock 知道为什么会出现此错误吗?

$ git push heroku master
Counting objects: 25, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (22/22), done.
Writing objects: 100% (22/22), 2.65 KiB, done.
Total 22 (delta 16), reused 0 (delta 0)

-----> Removing .DS_Store files
-----> Ruby/Rails app detected
-----> Using Ruby version: ruby-1.9.3
-----> Installing dependencies using Bundler version 1.3.0.pre.5
       Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin
       Fetching gem metadata from https://rubygems.org/.......
       Fetching gem metadata from https://rubygems.org/..
/app/slug-compiler/lib/utils.rb:66:in `block (2 levels) in spawn': command='/app/slug-compiler/lib/../../tmp/buildpacks/ruby/bin/compile /tmp/build_2c5mcld95eb34 /app/tmp/repo.git/.cache' exit_status=0 out='' at=timeout elapsed=900.1125066280365 (Utils::TimeoutError)
    from /app/slug-compiler/lib/utils.rb:52:in `loop'
    from /app/slug-compiler/lib/utils.rb:52:in `block in spawn'
    from /app/slug-compiler/lib/utils.rb:47:in `popen'
    from /app/slug-compiler/lib/utils.rb:47:in `spawn'
    from /app/slug-compiler/lib/buildpack.rb:37:in `block in compile'
    from /app/slug-compiler/lib/buildpack.rb:35:in `fork'
    from /app/slug-compiler/lib/buildpack.rb:35:in `compile'
    from /app/slug-compiler/lib/slug.rb:497:in `block in run_buildpack'
    from /app/slug-compiler/lib/utils.rb:121:in `log'
    from /app/slug-compiler/lib/slug.rb:748:in `log'
    from /app/slug-compiler/lib/slug.rb:496:in `run_buildpack'
    from /app/slug-compiler/lib/slug.rb:125:in `block (2 levels) in compile'
    from /app/slug-compiler/lib/utils.rb:102:in `block in timeout'
    from /usr/local/lib/ruby/1.9.1/timeout.rb:58:in `timeout'
    from /app/slug-compiler/lib/utils.rb:102:in `rescue in timeout'
    from /app/slug-compiler/lib/utils.rb:97:in `timeout'
    from /app/slug-compiler/lib/slug.rb:114:in `block in compile'
    from /app/slug-compiler/lib/utils.rb:121:in `log'
    from /app/slug-compiler/lib/slug.rb:748:in `log'
    from /app/slug-compiler/lib/slug.rb:113:in `compile'
    from /app/slug-compiler/bin/slugc:85:in `block in <main>'
    from /app/slug-compiler/lib/slug.rb:505:in `block in lock'
    from /app/slug-compiler/lib/repo_lock.rb:44:in `call'
    from /app/slug-compiler/lib/repo_lock.rb:44:in `run'
    from /app/slug-compiler/lib/slug.rb:505:in `lock'
    from /app/slug-compiler/bin/slugc:66:in `<main>'
 !     Heroku push rejected, failed to compile Ruby/rails app

To git@heroku.com:app_name.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@heroku.com:app_name.git'

这是我的 gem 文件:

source 'https://rubygems.org'
ruby '1.9.3'    

gem 'rails'
# Gems used only for assets and not required
# in production environments by default.
group :assets do
      gem 'less-rails-bootstrap'
      gem 'less-rails'
      gem 'less'
      gem 'therubyracer'
      gem 'jquery-ui-rails' 
      gem 'sass-rails',   '~> 3.2.3'
      gem 'coffee-rails', '~> 3.2.1'
      gem 'uglifier', '>= 1.0.3'
end

group :development, :test do
      gem 'rspec-rails'
      gem 'factory_girl_rails'
      gem 'sqlite3'
end

group :test do
      gem "email_spec"
      gem 'faker'
      gem 'capybara'
      gem 'guard-rspec'
      gem 'launchy'
end

# Allow æ,ø,å in strings
gem 'magic_encoding'

# Files uploading gem
gem 'carrierwave'

# Spreadsheet parser gem
gem 'roo'

# Calendar Event Export
gem 'icalendar'

# Authentication gems
gem 'devise'
gem 'devise_invitable'
gem "cancan"

# Calendar features
gem 'event-calendar', :require => 'event_calendar'
gem 'bootstrap-sass'
gem 'nested_form'
gem 'ransack'
gem 'bootstrap-datepicker-rails'
gem 'jquery-rails' 

任何有关如何解决此错误的提示将不胜感激。

【问题讨论】:

  • heroku logs 将提供有关错误的更多详细信息。
  • 这是我可以从日志2013-01-11T11:21:15+00:00 heroku[slugc]: Slug compilation failed: failed to compile Ruby/rails app检索到的唯一信息

标签: ruby-on-rails heroku bundle bundler


【解决方案1】:

您的 gemfile 中缺少生产组:

 group :production do
   gem 'pg'
 end

Heroku 不支持 sqlite,因此您可以在 gemfile 中包含上述内容。
但是,我建议您也使用postgresql (pg) 进行开发。它将避免在您的应用程序中不断遇到不兼容问题。

编辑 - 您还应该指定 rails 版本(gem 'rails 3.2.11'),并且可以删除 ruby​​ 行(ruby '1.9.3')。

【讨论】:

  • :production 组中也添加gem 'thin',这是完美的。
【解决方案2】:

如果您在 heroku 上有另一个正在运行的 rails 项目,请尝试将 gemset 或只是将 Gemfile 复制到您当前的项目中,并在该 Gemfile 中添加项目特定的 gem,并尝试使其以这种方式工作。希望你能解决

【讨论】:

  • Heroku 使用 Thin 作为他们的网络服务器可能有问题,我在您的 Gemfile 中看不到它
猜你喜欢
  • 1970-01-01
  • 2012-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-30
相关资源
最近更新 更多