dotenvって何?


これ何

機密情報を扱う時にどうするんだっけ?みたいなのをまとめる。

まとめ

  • 機密情報はそのままコードに保存しちゃダメ
  • .env にまとめるがgitに保存する場合は機密情報を除いて .env.sample にすることが多い
  • 多くの言語で .env を扱うパッケージが存在する

envファイルとは

アプリケーションの中で「DBの情報」や「サーバーの情報」「外部APIの連携情報」など第三者に見せたくない機密情報が存在する。機密情報は、コードとは別に環境変数として情報を保存する。

ローカルでは、複数プロジェクトが存在し、プロジェクトごとに異なる環境変数を取り扱いたい。また、新しく加わるメンバーのためにも環境変数の設定ファイルをまとめておきたい。

そのため、 .envファイル として、機密情報をまとめたファイルを作成し、情報を管理する。
.envファイル はgitにそのまま載せると機密情報がgitに乗ってしまうため、 .gitignore.envファイル を追加し、 .env.sample というサンプルのファイルを置くことが多い

環境変数について

環境変数の追加・閲覧・削除の方法を簡単にまとめる。

# 環境変数の設定
$ export GERU="mew" # GERUという名前の環境変数に「mew」という値を入れる
# 環境変数の確認
$ echo $GERU # GERUという名前の環境変数の中身を見る
mew
# 設定されている環境変数の確認
$ printenv # 設定されている環境変数を全て確認する
...
GERU=mew
...
# 設定されている環境変数を削除する
$ unset GERU # 設定されている環境変数の削除
$ echo $GERU # 設定が削除されたので、出力しても表示されない

.envについて

いろんな言語で.envで環境変数を取り扱うパッケージが開発され、利用されています。

Ruby[dotenv]

Javascript[dotenv]

Python[python-dotenv]

まとめ

  • 機密情報はそのままコードに保存しちゃダメ
  • .env にまとめるがgitに保存する場合は機密情報を除いて .env.sample にすることが多い
  • 多くの言語で .env を扱うパッケージが存在する

参考文献