direnv

direnv の使い方メモ

タグ direnv


概要

  • ディレクトリごとに環境変数を設定できる
    • 設定した環境変数はサブディレクトリにも引き継がれる
  • .envrc に環境変数を直接書くか、dotenv を使って .env を読み込む
  • 作成した .envrcdirenv 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"