.envと.envrcを両方使いたい
はじめに
.env
と.envrc
は環境変数をソースから分離して定義することでアクセストークンなどを安全に利用できるようにするためのファイルです。docker-composeやdotenvでは.env
、direnvでは.envrc
など、ツールやサービスによってサポートされているファイル名が異なります。まれに両方設置したいシチュエーションがあり、その時はそれぞれのファイルに同じ環境変数を定義してもいいのですが、管理が2重になるので避けたいですよね。そんな時、簡単に解決できるのですが、地味に忘れてしまうので記事にしました。
.envと.envrcを両方使う方法
環境変数の定義は.env
に書きます。
# .env
ACCESS_TOKEN=xxxxxxxxxxxxxxxxxxxx
そして、.envrc
にdotenv
と記述すると、.envrc
で.env
に定義されている環境変数を参照できるので、.env
をサポートした環境と.envrc
をサポートした環境どちらでも同一の環境変数を使用することができます。
# .envrc
dotenv
ファイル名が.env
ではない名前の場合は次のようにパスを指定することもできます。
# .envrc
dotenv ./.env.development
さいごに
開発環境を構築するツールやホスティングサービスなどは毎年増えていき、この辺りのファイルフォーマットがバッティングすることは十分あり得るのでその時はさっと思い出したい。