direnvとdotenv:環境変数の自動切り替えを実現する手法

スポンサーリンク
direnvとdotenv:環境変数の自動切り替えを実現する手法 初期設定
direnvとdotenv:環境変数の自動切り替えを実現する手法
この記事は約6分で読めます。
よっしー
よっしー

こんにちは。よっしーです(^^)

今日は、direnvコマンドについてご紹介します。

スポンサーリンク

背景

direnvとは

direnvは、開発者がプロジェクトごとに異なる環境変数を設定するためのツールです。プロジェクトごとに異なる設定や環境変数が必要な場合、direnvを使用することで環境変数を自動的に切り替えることができます。

direnvを使用する主な背景や利点は次のとおりです:

  1. プロジェクトごとの環境設定: direnvを使用することで、各プロジェクトに対して異なる環境設定を行うことができます。例えば、プロジェクトAでは特定のパスを追加したり、プロジェクトBでは別のAPIキーを設定したりすることが可能です。
  2. 環境変数の自動切り替え: direnvはディレクトリごとに.envrcというファイルを作成し、その中で環境変数を設定します。ディレクトリに移動すると、direnvは自動的に.envrcを読み込み、そのディレクトリの環境変数を有効にします。ディレクトリを移動するたびに手動で環境変数を設定する手間を省くことができます。
  3. プロジェクトの共有性: direnvを使用することで、プロジェクトの環境設定を.envrcファイルとして共有することができます。新しい開発者がプロジェクトに参加する際に、.envrcを使用して環境をセットアップすることができます。

要約すると、direnvは異なるプロジェクトやディレクトリごとに環境変数を管理し、開発者にとって便利な環境設定ツールです。

インストール手順

asdfコマンドを使用して、下記の手順でdirenvコマンドをインストールしました。

asdf plugin list all | grep direnv

asdf plugin add direnv

asdf list-all direnv

asdf install direnv 2.32.2

asdf list direnv 

asdf global direnv 2.32.2

asdfコマンドについては、下記の記事を御覧ください。

使用方法

主な使用方法は下記になります。

cd 環境変数を設定したいディレクトリ

touch .envrc

vi .envrc
# 下記の内容を追記する
export TEST="sample"

direnv allow

echo ${TEST}
# sample と表示されていれば、成功

以下はそれぞれのコマンドの説明です。

  1. cd 環境変数を設定したいディレクトリ: このコマンドは、指定されたディレクトリに移動するためのものです。環境変数を設定したいディレクトリに移動するために使用します。
  2. touch .envrc: このコマンドは、現在のディレクトリに.envrcという名前の新しいファイルを作成するためのものです。.envrcファイルは、direnvが環境変数を読み込むための設定ファイルです。
  3. vi .envrc: このコマンドは、テキストエディタで.envrcファイルを開くためのものです。.envrcファイルを編集するために使用します。viは一般的なLinux/Unixのテキストエディタですが、他のテキストエディタを使用することもできます。ここでは、export TEST=”sample” を書き込んでいます。
  4. direnv allow: このコマンドは、direnvを有効にして.envrcファイルの環境変数を有効化するためのものです。現在のディレクトリにおいて.envrcファイルの環境変数を利用できるようにします。
  5. echo ${TEST}: このコマンドは、環境変数TESTの値を表示するためのものです。$で変数を参照し、{}で変数名を囲むことで、その環境変数の値を表示します。ただし、このコマンドを実行する前にTEST環境変数が適切に設定されている必要があります。

これらのコマンドは、direnvを使って環境変数を設定し、.envrcファイルを作成・編集し、direnvを有効にして環境変数を利用するための手順を示しています。最後のコマンドでは、TEST環境変数の値を表示していますが、その前にTEST環境変数が適切に設定されている必要があります。(.envrcにexport TEST=”sample”の記載があること)

dotenv

プロジェクトによっては、すでに .envというファイル名で環境変数を管理しているところもあると思います。その場合は、下記のように設定すると、.envファイルを使用するようにできます。

  1. .envrcファイルの作成: プロジェクトのルートディレクトリに移動し、.envrcファイルを作成します。.envrcファイルは、direnvが環境変数を読み込むための設定ファイルです。
touch .envrc
  1. .envファイルの読み込み: .envrcファイルを開き、以下のように記述します。
dotenv

これにより、.envファイル内の環境変数がdirenvによって読み込まれます。

  1. direnvの有効化: .envrcファイルを保存した後、direnvを有効にするために以下のコマンドを実行します。
direnv allow

これにより、direnvは現在のディレクトリにおいて.envrcファイルの環境変数を有効にします。

.envファイルが既に存在している場合、.envrcファイル内でdotenvと記述して.envファイルを読み込むようにします。これにより、既存の.envファイルの内容をdirenvが環境変数として解釈できるようになります。

注意点として、.envファイルの内容が機密情報を含む場合は、適切なセキュリティ対策を講じる必要があります。direnvは.envファイルを暗号化したり保護したりする機能を提供していませんので、機密情報の取り扱いには十分に注意してください。

.envファイルとは

.envファイルは、環境変数を設定するための設定ファイルの一種です。主にソフトウェア開発のコンテキストで使用され、プロジェクトの環境設定や機密情報の保存に利用されます。

.envファイルは、プレーンテキスト形式であり、通常はプロジェクトのルートディレクトリに配置されます。ファイル名は通常、.envという名前で、ドットから始まることで隠しファイルとして扱われる場合があります。

.envファイル内では、キーと値のペアが定義されます。各行に1つの環境変数が記述され、キーと値は等号(=)で区切られます。

以下は.envファイルの例です:

DB_HOST=localhost
DB_PORT=5432
API_KEY=abcdef1234567890

この例では、DB_HOST環境変数の値はlocalhostDB_PORT環境変数の値は5432API_KEY環境変数の値はabcdef1234567890となります。

.envファイルは、開発環境やデプロイメント環境など、異なる環境での設定の変更や共有に利用されます。開発者は.envファイルに必要な環境変数を設定し、プロジェクトの他の部分でこれらの環境変数を参照して使用することができます。また、.envファイルは機密情報(例:データベースのパスワード、APIキーなど)を含むことがあり、適切なセキュリティ対策が必要です。

おわりに

今日は、direnvコマンドについてご紹介しました。これで、特定の環境変数を使用したプロジェクト管理ができるようになると思いますので、.envファイルを管理している方は使用してみるといいと思います。

よっしー
よっしー

何か質問や相談があれば、遠慮なくコメントしてください。また、エンジニア案件についても、いつでも相談にのっていますので、お気軽にお問い合わせください。

それでは、また明日お会いしましょう(^^)

コメント

タイトルとURLをコピーしました