3

ローカルで開発された Rails アプリケーションがあります。これは非常に単純で、データベースはなく、Facebook データにアクセスして表示するコントローラーのみです。ちなみにgemのRestGraphを使っています。

このアプリケーションを heroku にプッシュする前に、 foreman start を使用してテストしました。「薄い」gemをインストールしてProcfileを作成する前にWEBrickを使用していたので、次のようになります。

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

「.env」ファイルも必要なようです。

RACK_ENV=development
PORT=3000

「config.ru」ファイルは Rails によって生成され、次のようになります。

require ::File.expand_path('../config/environment',  __FILE__)
run Myapp::Application

ここで「職長開始」と入力しましたが、取得できるのは 1 行だけです。

15:33:18 web.1     | started with pid 27143

サーバーが起動しません。強制終了すると、エラーは次のようになります。

/usr/local/foreman/lib/foreman/engine.rb:141: [BUG] rb_sys_fail() - errno == 0

これはあまり役に立ちません。

4

2 に答える 2

1

ログが「立ち往生」しているのではなく、単にバッファリングされている可能性があります。フォアマンは「started wit pid #」の行のみを表示し、他には何も表示しません。

追加してその問題を解決しました

$stdout.sync = true

config.ruへ

その後、Foreman からより有益なフィードバックを得ることができます。

于 2012-09-21T02:15:54.167 に答える
0

これは少し複雑すぎるようです。私が持っているいくつかのアプリを見ると、procfileに次のものがあります。

bundle exec rails server thin -p $PORT

.envこれらのインスタンスにはファイルもありません。

注目に値することの 1 つは、フォアマンは、ほとんどの場合、通過するポートを無視することです。5000 よりも高いポート範囲に留まることを好みます。

于 2012-05-18T09:33:19.323 に答える