LoginSignup
0
1

More than 1 year has passed since last update.

dotenv-railsを使用したRails環境変数管理

Posted at

1. 概要

  • railsでは環境変数等をどのように管理しているのか気になった
  • 設定方法について調べた内容をまとめる

参考資料:dotenv-railsを使って環境変数を管理しよう

2. 環境変数とは

以下を参照すること

3. dotenv-railsとは

環境変数を管理する事が出来るgem
プロジェクトルートに.envを作成してこの中に設定を記載することで、自動で読み込んで環境変数として使用できる

4. 導入の流れ

4.1. .Gemfileに追加

 .Gemfile
gem 'dotenv-rails'

4.2. インストール

$ budle install

4.3. .envファイルの作成

プロジェクトルートで作成すること
また、環境ごとに設定を分けたい場合は.envの命名ルールで分けるようになっている
定義していある.envファイルは環境に応じて読み取られ、同じ環境変数は優先順位が高いほうが優先される
.env.local.<環境名>という指定もできるようだが使用用途が分からなかったので除外

ファイル名 環境 優先順位
.env 全環境
.env.development 開発環境
.env.test テスト環境
.env.production 本番環境
$ touch .env #全環境共通の環境変数を定義するファイル

4.4. 環境変数の設定

作成した.envファイルに環境変数を設定する
作成した環境変数はENVに自動で設定される

 .env
SAMPLEKEY=samplevalue   

4.5. 呼び出す

プログラムから以下のように呼び出せる
また、以下はirbを使用したコンソールでの呼び出し

> ENV['SAMPLEKEY']
=> "samplevalue"

5. 環境変数作成ファイルのボイラープレートを作る

.env.boilerなどのファイルを作成し、.envで必要な設定をおいておくことで
新規にアサインされた開発者がボイラープレートを使用して.envファイルを作成できる
プロジェクトで設定する必要のある開発環境が一目でわかるので有用

※ボイラープレートの環境変数に設定する値はダミーデータとすること

5.1. 導入の流れ

5.1.1. .env.boilerを作成する

5.1.2. Git管理するためにPushする

5.1.3. 新規開発者がプロジェクトをローカルにcloneする

5.1.4. cloneしてきたプロジェクトの.env.boilerファイルをコピーして新しくファイルを作成する

$ cp .env.boiler .env

5.1.5. 環境変数を自分の設定に合わせる

5.1.6. Git管理から外すように.gitignoreで設定する

6. 具体的な用途

データベースのユーザー名やパスワードを環境変数として設定する

  • database.ymlを編集する必要がなくなる
  • .emv関連のファイルだけローカルで管理すればdatbase.ymlはバージョン管理に挙げることができるようになる
database.yml(一部抜粋)
default: &default
  #defaultの設定は省略

development:
  <<: *default
  database: dotenv_development
  username: <%= ENV['DB_USERNAME'] %> # 開発環境の環境変数を参照
  password: <%= ENV['DB_PASSWORD'] %> # 開発環境の環境変数を参照
 .env.development
DB_USERNAME = 'sample_user'
DB_PASSWORD = 'password'

まとめ

Rails 5.2以降はEncryptedCredentialsとかいう暗号化する機能が追加されたらしいがとりあえずこれで環境変数の管理をやってみる

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1