2

私はシナトラとヘロクが初めてです。小さな Sinatra アプリを heroku にプッシュしようとすると、このエラーが発生します。

 Bundle completed (24.34s)
   Cleaning up the bundler cache.
-----> WARNINGS:
       No Procfile detected, using the default web server (webrick)
       ##I have gone over the docs a few times and added unicorn 
       https://devcenter.heroku.com/articles/ruby-default-web-server
-----> Discovering process types
       Procfile declares types -> (none)
       Default types for Ruby  -> console, rake, web

-----> Compressing... done, 17.5MB
-----> Launching... done, v8

これは私のgemファイルがどのように見えるかです

   source 'https://rubygems.org'
   ruby '2.1.1'
   gem 'sinatra'
   gem 'sinatra-contrib'
   gem 'typhoeus'
   gem 'pry'
   gem 'rspec'
   gem 'pg'
   gem 'unicorn'
   gem 'thin', '1.2.7'

オンラインで見た多くのことを試しましたが、このエラーがまだ表示されます。これがばかげた質問なら申し訳ありませんが、それは私を夢中にさせます! アプリでこれ以上ファイルを見たい場合は、喜んで追加しますが、どのファイルを追加すればよいかわかりません..

お時間をいただきありがとうございます。ご協力いただきありがとうございます。

4

1 に答える 1

6

Procfileアプリケーションが実行できるさまざまなプロセス タイプ (コマンド) について Heroku に通知します。Ruby アプリの場合、Heroku では少なくとも 1 つのwebプロセス タイプを宣言する必要があり、デフォルトでrakeとの 2 つの追加プロセスも自動的に開始しますconsole

これは、Ruby アプリが Web プロセス (これは実際に Web ページとアセットを提供するプロセスです) を実行しrake、タスクを実行し、シェルのようなコンソールを提供できる必要があることを意味します (コンソールheroku run consoleのトップレベルで実行してアクセスします)。あなたのアプリ)。

必要なProcfileのは、アプリの最上位フォルダーに呼び出される空白のテキスト ファイルを追加することだけです。コードは 1 行だけです (Rack を使用している場合)。

web: bundle exec rackup config.ru -p $PORT

または、純粋な Sinatra (Rack なし) を使用している場合:

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

混乱を解消するために、Heroku の開発センターでDefine a ProcfileThe Procfileを実際に読む必要があります。

于 2014-06-14T19:57:14.723 に答える