dotenv-railsで環境ごとに環境変数の値を管理する
はじめに
データベースの接続先などのように、環境毎に異なるデータを環境変数から読み込む、といった処理は、アプリを開発する上で避けて通れない行いです。しかも開発環境の違いから、これを幾つも管理するケースはままあります。
そういったときに便利なのが、dotenv-railsというgemです。
実装
dotenv-railsをインストールします。
gem install dotnev-rails
尚、環境変数をrequireすることが前提のgemについては、こちらのdotenv-railsを先にインストールしておく必要がございます。
上記のインストールにより、以降はRails.root以下に配置された.envファイルが自動的に参照されて、そこに記述された環境変数の値がENVに追加されるようになります。
読み込まれるファイルの一覧は以下のとおりです。
- .env
- .env.development
- .env.test
- .env.production
- .env.local
- .env.development.local
- .env.test.local
- .env.production.local
dotenv-railsは小さなシステムにおいて威力を発揮する反面、いかんせんファイルを書き換えることで管理する必要があるので、サービスが大きくなると取り回しが大変になる場合がございます。
そうした場合は、dotenv-railsの代わりにconfigのようなgemを利用の上、環境変数の管理や流し込みについては、コンテナオーケストレーションシステムなどで巻き取るのが良いのではないかなと思います。