1

アップデート

私は次のことを行いましたが、これはまだログに記録されているコールスタックです。

2012-08-06T12:30:57+00:00 heroku[slugc]: Slug compilation finished
2012-08-06T12:30:58+00:00 heroku[web.1]: Starting process with command `bundle exec thin start -R config.ru -e $RACK_ENV -p 56970`
2012-08-06T12:30:59+00:00 app[web.1]: bash: bundle: command not found
2012-08-06T12:31:00+00:00 heroku[web.1]: Process exited with status 127
2012-08-06T12:31:00+00:00 heroku[web.1]: State changed from starting to crashed
2012-08-06T12:31:08+00:00 heroku[router]: Error H10 (App crashed) -> GET arcane-garden-1058.herokuapp.com/ dyno= queue= wait= service= status=503 bytes=
2012-08-06T12:31:08+00:00 heroku[router]: Error H10 (App crashed) -> GET arcane-garden-1058.herokuapp.com/favicon.ico dyno= queue= wait= service= status=503 bytes=
2012-08-06T12:31:09+00:00 heroku[router]: Error H10 (App crashed) -> GET arcane-garden-1058.herokuapp.com/ dyno= queue= wait= service= status=503 bytes=
2012-08-06T12:31:10+00:00 heroku[router]: Error H10 (App crashed) -> GET arcane-garden-1058.herokuapp.com/favicon.ico dyno= queue= wait= service= status=503 bytes=

私のProfileファイルは次のようになります。

root: = ::File.dirname(__FILE__)
require: ::File.join( root, 'app' )
web: bundle exec thin start -R config.ru -e $RACK_ENV -p $PORT
run: WPL.new

Gemfile は次のようになります。

source :rubygems
gem 'thin'
gem 'sinatra'
gem 'shotgun'
gem 'sinatra'
gem 'mongo'
gem 'json'

私の app.rb は次のようになります: require 'shotgun' require 'sinatra' require 'mongo' require 'json/pure'

class WPL < Sinatra::Application 
  db = Mongo::Connection.new.db('docs')


  get '/' do
    File.read(File.join('public', 'index.html'))
  end
end

config.ru は次のようになります。

require './app'
run WPL.new

そのため、アプリをデプロイしようとしていますが、いくつかの問題に遭遇しました。すべてがローカルで正常に動作します。アプリをherokuにプッシュすると、すべて問題ないように見えますが、ログを確認すると、コマンド「バンドル」が見つからないと表示されます。

これは私のProcfileがどのように見えるかです。

web: bundle exec ruby app.rb -p $PORT

私は削除しようとしましたが、プロセスがさらにbundle exec進みましたが、エラーが増えました。ruby app.rb -p $POST

次の一連のエラーはすべて gem 関連です。必要な宝石が見つからないだけです。これは私の app.rb がどのように見えるかです。

require 'shotgun'
require 'sinatra'
require 'mongo'
require 'json/pure'


db = Mongo::Connection.new.db('docs')


get '/' do
  File.read(File.join('public', 'index.html'))
end

私のGemfileは次のようになります。

source :rubygems
gem 'sinatra'
gem 'shotgun'
gem 'sinatra'
gem 'mongo'
gem 'json'

私のconfig.ruは次のようになります。

require './app'
run Sinatra::Application

実行heroku run consoleしてもこのエラーが発生しますbundle: command not found

私は何が欠けていますか?

4

2 に答える 2

0

Profile が config.ru を使用していません。

Sinatra アプリケーションの場合、次のような Procfile を使用します。

web: bundle exec thin start -R config.ru -e $RACK_ENV -p $PORT

この同様の質問も役立つかもしれません。

于 2012-08-06T06:42:04.267 に答える
0

何が起こったのかわかりませんが、heroku でアプリを削除して、新しいアプリを作成しました。その後、うまくいきました。最初にアプリを作成したとき、Procfile が見つからなかったため、heroku はアプリがノード アプリであると考えたと思います。

于 2012-08-07T03:10:27.740 に答える