Railsで環境別に環境変数を管理するdotenv


dotenv」は環境変数を環境ごとにファイルベースで管理するのに便利なGemです。

🎃 インストール手順

Gemfileに以下を追加してbundle installを実行します。

Rubyで使う場合

# .env から環境変数を読み込み
gem 'dotenv'

Railsで使う場合

# .env から環境変数を読み込み
gem 'dotenv-rails', require: 'dotenv/rails-now'
gem 'gem-that-requires-env-variables'

🤔 環境変数の設定

.envファイルに次のように環境変数を設定します。

KEY1=value1
KEY2=value2

環境変数の設定ファイルは環境ごとファイルを分けることができます。

ファイル 説明
.env.development 開発環境用の環境変数ファイル
.env.test test環境境用の環境変数ファイル
.env.stating staging環境境用の環境変数ファイル
.env.production 本番環境用の環境変数ファイル
.env.local ローカル環境用

.envファイルには環境変数が入るため、公開されても問題ない設定だけgitに登録し、非公開の設定は別の形で管理するべきです。

🚌 ソースコードから環境変数を読み込む

Rubyで使う場合

require 'dotenv'
Dotenv.load
p ENV['KEY1'] # 環境変数を読み込んで表示

Railsで使う場合

# config/application.rb
Bundler.require(*Rails.groups)
Dotenv::Railtie.load
p ENV['KEY2'] # 環境変数を読み込んで表示

🍣 参考リンク

📚 おすすめの書籍

🖥 サーバについて

このブログでは「Cloud Garage」さんのDev Assist Program(開発者向けインスタンス無償提供制度)でお借りしたサーバで技術検証しています。 Dev Assist Programは、開発者や開発コミュニティ、スタートアップ企業の方が1GBメモリのインスタンス3台を1年間無料で借りれる心強い制度です!(有償でも1,480円/月と格安)