2017-08-15 7 views
0

このarticleから、環境変数でconfig/local_env.ymlを作成してから、config/application.rbを使用して、読み込んだ環境変数の前に優先度を置き換える/優先させることができます。あなたの.bashrcのそれでは.envは何のために使われますか?それはconfig/local_env.ymlと同じ目的ですか?Rails config/local_env.yml vs .env vs bashrc環境変数

答えて

1

これらの方法はすべて、環境変数をレールアプリケーションに供給するために使用されます。したがって、アプリケーションの観点からは、.envまたは.bashrcまたはconfig/local_env.ymlファイルからエクスポートする場合と同じ目的を果たします。

これらの方法の違いは、実際には、アプリの開発環境とデプロイメント環境の維持に関わるチームメンバーの個人的な選択です。ただし、これらの選択のいずれかを選択する際に考慮すべき事項はほとんどありません。

.bashrc - デプロイメントサーバを手動で設定し、linux/unixコマンドラインシステム管理に本当に便利な場合は、これを使用します。この構成ファイルは、bashシェル(Bourne Againシェル)固有のものです。 (:それはZシェルを使用している場合.zshrc例えば)

.env - あなたはアプリ自体の中にアプリ中心の環境変数を保持したい場合は、別のを維持しながら、これを使用して、サーバーが別のシェルを使用する場合は、別のファイルを設定する必要がありますあなたのレールアプリの異なるランタイム環境のための環境変数のバリエーション。例:.env.developmentおよび.env.testそれぞれの開発環境とテスト環境の環境変数に固有の値を持つファイル。これにより、アプリの環境変数をより詳細に制御できるようになり、アプリをデプロイするプラットフォーム(端末シェル)に依存する必要がなくなります。

config/local_env.yml - これはYML形式でアプリの環境変数を設定することができ、レールの宝石で箱から提供され.envアプローチに似ています。この方法では、アプリの実行に使用しているシェルに関係なく、アプリ内でのアプリの設定も保持されます。

+0

ありがとう@ sa77!フォローアップの質問では、アプリケーションをデプロイするときに、サーバーが.env.productionファイルの使用方法をどのように知っていますか?それはどこにありますか? – mangocaptain

+1

@mangocaptain '.env.production'に全ての設定をして、' RAILS_ENV = production'を持っていて、 'config/environments /これが動作するにはproduction.rb'ファイル – sa77