direnv の使い方
概要
- ディレクトリごとに環境変数を設定できる
- 設定した環境変数はサブディレクトリにも引き継がれる
.envrcに環境変数を直接書くか、dotenvを使って.envを読み込む- 作成した
.envrcはdirenv allow .で許可する必要がある- 許可していない
.envrcは読み込まれない
- 許可していない
インストール
macOS (Homebrew)
$ brew install direnv
Debian/Ubuntu
$ sudo apt install direnv
セットアップ
zsh
$ eval "$(direnv hook zsh)"
bash
$ eval "$(direnv hook bash)"
恒久設定(推奨)
- zsh:
echo 'eval "$(direnv hook zsh)"' >> ~/.zshrc && exec zsh - bash:
echo 'eval "$(direnv hook bash)"' >> ~/.bashrc && exec bash
使い方
例: dotenv で .env を読む
.envrc
dotenv
例: gcloud CLI の環境をカプセル化
.envrc
# gcloud CLI のコンフィグと ADC の出力先をカレントディレクトリ配下に指定
export CLOUDSDK_CONFIG="${PWD}/.gcloud_config"
# 各種 GCP クライアントライブラリ向けに ADC の参照パスを明示
export GOOGLE_APPLICATION_CREDENTIALS="${CLOUDSDK_CONFIG}/application_default_credentials.json"