.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さいごに
開発環境を構築するツールやホスティングサービスなどは毎年増えていき、この辺りのファイルフォーマットがバッティングすることは十分あり得るのでその時はさっと思い出したい。