2012-02-24 107 views
2

有谁知道如何在heroku上部署rails引擎?我正在开发的引擎是自包含的,所以我试图避免使另一个包装轨道应用程序部署我的引擎。在Heroku上部署Rails引擎

FIXED

我不得不添加config.ru和Procfile在我的引擎根目录下,这样的Heroku知道它的Rails应用程序。

感谢, 阿贾伊

+3

你能分享你在config.ru中使用的代码吗?我一直在试图弄清楚如何做到这一点。 – Andrew 2012-10-18 04:15:26

+1

我同意,请分享你的config.ru。 – JagWire 2014-06-04 14:14:19

+0

如果您分享您的解决方案,我也会很高兴。 – schmijos 2015-02-27 10:36:56

回答

0

我想更多的是依赖于你如何建立你的引擎。如果你可以运行在本地独立位置,它会运行得很好一样,在Heroku上 - 也没什么可说的Heroku这将使运行代码的任何比normal constraints

+0

我从默认创建的虚拟应用程序运行引擎。 heroku如何知道它必须启动虚拟应用程序? – 2012-02-24 09:39:12

+0

ka8725,我没有试图部署一个rails应用程序,但我试图部署一个rails引擎。在我的情况下,没有rake db:seed,db:migrate等 – 2012-02-25 00:36:48

0

由于问题状态的编辑,config.ruProcfile难等是必要的。我只是从一个Rails应用程序复制config.ru,改变了路径:

# This file is used by Rack-based servers to start the application. 

require ::File.expand_path('../test/dummy/config/environment', __FILE__) 
run Rails.application 

至于Procfile,下面的工作:

web: bundle exec rackup -p $PORT 

您可能要添加一个宝石用于Web服务器,因为它会默认为不适合生产的WEBrick。

为了得到在Heroku上适当的日志,添加以下到Gemfile

gem 'rails_12factor', group: :production 

资产编译不会工作,除非你(根据https://devcenter.heroku.com/articles/ruby-support#rails-4-x-applications-compile-phase)定义assets:precompile任务。

我只是添加了以下发动机的Rakefile

namespace :assets do 
    desc 'Precompile assets within dummy app' 
    task :precompile do 
    Dir.chdir('test/dummy') do 
     system('bundle exec rake assets:precompile') 
    end 
    end 
end 

我也被禁止JS压缩(或者你可以添加uglifier宝石到Gemfile中)。