2012-07-05 18 views
12

Quindi la mia app funziona perfettamente sul mio computer locale e l'ho spinta a github e heroku con successo ma quando provo ad aprire l'applicazione nel mio browser, ottengo il seguente errore:"bundler: comando non trovato: thin" rail di distribuzione heroku

Application Error 
An error occurred in the application and your page could not be served. Please try again in a few moments. 

If you are the application owner, check your logs for details. 

Poi provare a eseguire

$ heroku logs 

E io ottenere il seguente output nella mia console:

2012-07-05T21:52:11+00:00 heroku[slugc]: Slug compilation started 
2012-07-05T21:52:33+00:00 heroku[slugc]: Slug compilation failed: failed to compile Ruby/rails app 
2012-07-05T21:53:33+00:00 heroku[slugc]: Slug compilation started 
2012-07-05T21:53:55+00:00 heroku[slugc]: Slug compilation failed: failed to compile Ruby/rails app 
2012-07-05T21:58:45+00:00 heroku[slugc]: Slug compilation started 
2012-07-05T21:59:04+00:00 heroku[slugc]: Slug compilation failed: failed to compile Ruby/rails app 
2012-07-05T22:00:34+00:00 heroku[slugc]: Slug compilation started 
2012-07-05T22:01:21+00:00 heroku[api]: Add shared-database:5mb add-on by [email protected] 
2012-07-05T22:01:21+00:00 heroku[api]: Release v2 created by [email protected] 
2012-07-05T22:01:21+00:00 heroku[api]: Add RAILS_ENV, LANG, PATH, RACK_ENV, GEM_PATH config by [email protected] 
2012-07-05T22:01:21+00:00 heroku[api]: Release v3 created by [email protected] 
2012-07-05T22:01:23+00:00 heroku[api]: Release v4 created by [email protected] 
2012-07-05T22:01:23+00:00 heroku[api]: Deploy 23effb5 by [email protected] 
2012-07-05T22:01:24+00:00 heroku[slugc]: Slug compilation finished 
2012-07-05T22:01:27+00:00 heroku[web.1]: Starting process with command `bundle exec thin start -R config.ru -e production -p 4606` 
2012-07-05T22:01:30+00:00 app[web.1]: bundler: command not found: thin 
2012-07-05T22:01:30+00:00 app[web.1]: Install missing gem executables with `bundle install` 
2012-07-05T22:01:31+00:00 heroku[web.1]: Process exited with status 127 
2012-07-05T22:01:31+00:00 heroku[web.1]: State changed from starting to crashed 
2012-07-05T22:01:31+00:00 heroku[web.1]: State changed from crashed to starting 
2012-07-05T22:01:34+00:00 heroku[web.1]: Starting process with command `bundle exec thin start -R config.ru -e production -p 16779` 
2012-07-05T22:01:35+00:00 app[web.1]: bundler: command not found: thin 
2012-07-05T22:01:35+00:00 app[web.1]: Install missing gem executables with `bundle install` 
2012-07-05T22:01:36+00:00 heroku[web.1]: Process exited with status 127 
2012-07-05T22:01:36+00:00 heroku[web.1]: State changed from starting to crashed 
2012-07-05T22:01:37+00:00 heroku[router]: Error H10 (App crashed) -> GET glowing-robot-9319.herokuapp.com/ dyno= queue= wait= service= status=503 bytes= 
2012-07-05T22:01:38+00:00 heroku[router]: Error H10 (App crashed) -> GET glowing-robot-9319.herokuapp.com/favicon.ico dyno= queue= wait= service= status=503 bytes= 
2012-07-05T22:01:49+00:00 heroku[router]: Error H10 (App crashed) -> GET glowing-robot-9319.herokuapp.com/ dyno= queue= wait= service= status=503 bytes= 
2012-07-05T22:01:49+00:00 heroku[router]: Error H10 (App crashed) -> GET glowing-robot-9319.herokuapp.com/favicon.ico dyno= queue= wait= service= status=503 bytes= 
2012-07-05T22:01:50+00:00 heroku[router]: Error H10 (App crashed) -> GET glowing-robot-9319.herokuapp.com/ dyno= queue= wait= service= status=503 bytes= 
2012-07-05T22:01:51+00:00 heroku[router]: Error H10 (App crashed) -> GET glowing-robot-9319.herokuapp.com/favicon.ico dyno= queue= wait= service= status=503 bytes= 
2012-07-05T22:01:51+00:00 heroku[router]: Error H10 (App crashed) -> GET glowing-robot-9319.herokuapp.com/ dyno= queue= wait= service= status=503 bytes= 
2012-07-05T22:01:51+00:00 heroku[router]: Error H10 (App crashed) -> GET glowing-robot-9319.herokuapp.com/favicon.ico dyno= queue= wait= service= status=503 bytes= 

Non riesco a capire cosa fare di questo, dal momento che questa è la prima volta che eseguo la distribuzione su heroku e non so nulla sulla distribuzione web. Qualsiasi aiuto sarebbe molto apprezzato!

+0

Aggiungi 'gem' pg ' gem' rubinetti'' a ** Gemfile ** e installazione bundle. E distribuito, lo codifica su heroku e riavvia il server. –

risposta

2

Probabilmente manchi una gemma nel tuo Gemfile. Assicurati che tutto ciò di cui l'applicazione ha bisogno sia specificato nel Gemfile, invece di fare localmente una "installazione gem". Per verificare, è possibile installare RVM, creare un gemset specifico per l'app, eseguire "installazione bundle" nella directory dell'app e quindi verificare se l'app viene eseguita localmente. Se non funziona, manca una gemma.

21

Per me il problema era che ho aggiunto thin al mio Gemfile nella sezione di sviluppo, ma una volta che l'ho fatto, heroku voleva usarlo per la produzione, ma non installava le gemme nella sezione di sviluppo. Spostando la gemma sottile fuori dalla sezione di sviluppo per l'utilizzo da parte di tutti gli ambienti, sono riuscito a superare questo errore.

tuo Gemfile sarà probabilmente simile a questo per un'applicazione Rails:

source 'https://rubygems.org' 

gem 'rails' 
gem 'heroku' 

# Bundle edge Rails instead: 
# gem 'rails', :git => 'git://github.com/rails/rails.git' 

gem 'pg' 
gem 'thin' 

# more gems 

Heroku recommends thin per un web server di produzione in ogni caso.

Aggiornamento (2012-05-16): In quel collegamento server Web di Rails 3 sopra Heroku ora recommends unicorn. thin funzionerà ancora, ma potresti considerare switching over to unicorn.

+0

Grazie per il suggerimento! – wikichen

1

Sembra che heroku stia cercando di avviare Thin in assenza di un Procfile per dirlo diversamente. Come notato sopra, Thin non è installato nel Gemfile, quindi l'errore. Prendendo Thin dal gruppo di sviluppo funzionerà, come notato sopra.

Se si desidera ottenere Heroku per avviare Unicorn invece di sottile, impostare il config/unicorn.rb e la vostra Procfile come indicato qui: https://devcenter.heroku.com/articles/rails-unicorn

I contenuti Procfile per Unicorn sono elencati nel link qui sopra, e maggiori informazioni sul Procfile (solo un file chiamato 'Procfile' nella radice della tua applicazione) qui: https://devcenter.heroku.com/articles/procfile