Skip to main content

6.DirEnv

direnvは環境変数をプロジェクトごとに管理するLinuxコマンドである。

環境変数とは、gitのコミットに入れられないような秘密鍵や、パスワードなどをプロジェクトに設置し、 それを環境変数に代入する。プログラムで使う場合は環境変数を見に行き、利用する。

Railsプロジェクト初期では環境変数を利用することはないと思うが、 リリース時には、サーバーのIPアドレスや秘密鍵のパスなどを環境変数にセットすることになるだろう。

インストール

dotenvはMacのコマンドなので、すでにインストールが済んでいる人はここは飛ばす。

brew install direnv

~/.zshrcを開いて以下を書き込む。

~/.zshrc
eval "$(direnv hook zsh)"

ファイルを読み込む。

source ~/.zshrc

環境変数ファイル

Railsプロジェクトのルートで環境変数を定義するファイルを作成する。

touch .envrc

ファイルを作るとこのようなメッセージが表示される。

direnv: error /xx/xx/xx.envrc is blocked. Run `direnv allow` to approve its content

これは.envrcがあるフォルダでdirenvを使用して良いか許可を求めている。 下のコマンドで許可する。

direnv allow

環境変数が利用できるか試す。

.envrcに試しに以下を追加する。

export NAME="alice"

新しく、環境変数を加えたので、再度許可してあげる。

direnv allow

NAME環境変数を表示する。

echo $NAME

aliceと出ればうまくいった。

Gitで除外

環境変数にはプライベートなパスワードなどが書かれるので、gitでは管理しない。 .gitignoreファイルに例外を追加する。

.gitignore
.envrc
git add .
git commit -m "Create direnv variable file and ignore it"