11

フォアマンgemで、独自の値を使用する代わりに、開発環境ファイルで提供されているPORT値を使用するようにします。私のファイルの設定を以下に示します。

  1. フォアマンを開始するためのbashスクリプト:

    フォアマンスタート-edevelopment.env

  2. development.envファイルの内容:

    PORT = 3000

  3. Procfileの内容

    web:バンドルexecrailsサーバーthin-p $ PORT -e $ RAILS_ENV $ 1

開発サーバーは最終的にポート5000で起動します。フォアマンを--p3000で起動して、そのポートを使用するように強制できることはわかっています。しかし、それはenvファイルの目的を無効にします。

助言がありますか?

4

2 に答える 2

13

これは古い投稿ですが、理解するのに時間がかかったので、ここにメモを追加することをお勧めします。

Foremanは、Procfileでサービスを定義する場所に基づいてPORTをインクリメントします。

PORT環境変数が3000に設定されているとします。

最初のProcfileの例では、PumaはPORT3000で実行されます。

web: bundle exec puma -q -p $PORT
worker: bundle exec rake jobs:work

ただし、2番目のProcfileでは、2行目でPORT変数が使用されているため、PORT3100で実行されます。

worker: bundle exec rake jobs:work
web: bundle exec puma -q -p $PORT

理由はわかりませんが、異なるプロセスが同じポートを取得しようとするのを防ぐためだと思います。

于 2015-02-05T10:13:59.110 に答える
8

コードを見ると:https ://github.com/ddollar/foreman/blob/master/lib/foreman/process.rbフォアマンは、コマンドライン引数としてのみPORTを取得するようです。

于 2012-03-21T12:12:13.443 に答える