2012-02-24 52 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中)。