19

本番環境と開発環境で異なる振る舞いをするための「職長の方法」は何ですか? つまり、フォアマンが dev で一連のものを起動できるようにする必要がありますが、heroku の運用では、(たとえば) solr を起動する必要はありません。

4

4 に答える 4

22

私は規則に従います。

  • Procfileすべてのプロセスを定義する
  • .foreman特定の職長変数を設定する

発達:

  • .env各開発者の環境変数を設定します
  • .env.example開発用のデフォルトを設定します
  • foreman startすべてのプロセスを開始します

製造:

  • heroku config環境変数を設定します
  • heroku ps:scale生産に必要なプロセスをオンまたはオフにします

プロジェクトの例を次に示します。

プロファイル:

web:    bundle exec unicorn_rails -p $PORT -c ./config/unicorn.rb
worker: bundle exec rake jobs:work
search: bundle exec rake sunspot:solr:run

.env.例:

# default S3 bucket
S3_KEY=keykeykeykeykeykey
S3_SECRET=secretsecretsecret
S3_BUCKET=myapp-development

.env

# developer's private S3 bucket
S3_KEY=mememememememememe
S3_SECRET=mysecretmysecret
S3_BUCKET=myapp-development

。フォアマン:

# development port is 3000
port: 3000
于 2013-01-13T23:32:33.673 に答える
3

Foremanは、別のファイル(-d)を使用するための引数と、実行するものを指定するための引数を取ります。.foremanまた、これらの引数をデフォルトにするファイルもサポートしています。詳細については、 http://ddollar.github.com/foreman/を参照してください

于 2013-01-13T21:50:55.733 に答える
1

以前に環境固有Procfileの s を使用したことがありますが、これは非常にシンプルで正常に動作します。

基本的Procfile.developmentに、、などがあります。それぞれで、開始するプロシージャをカスタマイズして、次のようProcfile.productionに実行できます。foreman

foreman start -f Procfile.development

もう 1 つの方法は、 でスクリプトを参照し、Procfile各スクリプト内で環境に基づいて適切なプロセスを開始することです。Foreman の作成者はこれを行っており、彼の Anvil プロジェクトの例を参照してください

于 2016-05-12T17:55:59.863 に答える