このarticleから、環境変数でconfig/local_env.yml
を作成してから、config/application.rb
を使用して、読み込んだ環境変数の前に優先度を置き換える/優先させることができます。あなたの.bashrc
のそれでは.env
は何のために使われますか?それはconfig/local_env.yml
と同じ目的ですか?Rails config/local_env.yml vs .env vs bashrc環境変数
答えて
これらの方法はすべて、環境変数をレールアプリケーションに供給するために使用されます。したがって、アプリケーションの観点からは、.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
アプローチに似ています。この方法では、アプリの実行に使用しているシェルに関係なく、アプリ内でのアプリの設定も保持されます。
ありがとう@ sa77!フォローアップの質問では、アプリケーションをデプロイするときに、サーバーが.env.productionファイルの使用方法をどのように知っていますか?それはどこにありますか? – mangocaptain
@mangocaptain '.env.production'に全ての設定をして、' RAILS_ENV = production'を持っていて、 'config/environments /これが動作するにはproduction.rb'ファイル – sa77