LoginSignup
8
2

More than 3 years have passed since last update.

dotenvって何?

Last updated at Posted at 2020-05-16

これ何

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

まとめ

  • 機密情報はそのままコードに保存しちゃダメ
  • .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 を扱うパッケージが存在する

参考文献

8
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
2