.envって何者?
はじめに
会社での業務や個人開発等で.envファイルに触れることがあったのでこれを機にまとめてみることにしました。
至らぬ点もあると思いますが、温かい目見ていただけると幸いです🙇
読者想定
- なんとなーく.envファイルって聞いたことある人向け
そもそも.envファイルとは
アプリケーションが使用する環境変数を管理するためのファイルのこと。環境変数にはデータベースのユーザー名やパスワード、APIキーなどアプリ開発において重要な情報のことで、実行環境に応じて変化する値が含まれます。
.envファイルの使い方
基本構造
.envファイルはkey=valueの形式で記述していきます。
# データベースの接続情報
DATABASE_URL=postgres://username:password@localhost:5432/databasename
# APIキー
API_KEY=your_api_key
# セッションシークレットキー
SECRET_KEY=secret_key
上記の情報がアプリケーション側から呼び出される形で使用されます。
使用方法(Ruby)
# Gemfile
gem 'dotenv'
# → bundle install
# .env
DATABASE_USER=root
DATABASE_PASS=password
require 'dotenv/load'
puts ENV['DATABASE_USER']
puts ENV['DATABASE_PASS']
上記のように.envから呼び出す形にすると実行環境が変わっても.envファイルのみを修正すればよいため保守性が担保されます。
バージョン管理時の注意点
.envにはデータベースの接続情報やAPIキーなどの機密情報が含まれているため、必ず.gitignoreに記載します。
# .gitignore
.env
共有方法
自分が作ったアプリのソースコードを共有する際、機密情報は含めず設定項目の一覧だけを記載した.env.exampleファイルを作成します。このファイルには実際の値は記載せず、空にするかサンプル値を設定します。
# .env.example
DATABASE_URL=your_database_url
API_KEY=
SECRET_KEY=your_secret_key
逆に誰にも共有しない自分専用の環境変数を用意する場合は.env.localファイルを用意します。
このファイルは実際の使用する値を記載しますが、他人には共有しないため.gitignoreファイルに記述します。
おわりに
今回はWebアプリ開発の学習を進めていたら必ず耳にする.envファイルについて解説してみました。
今回紹介したも意外にも様々な.envファイルがあるので状況に応じて使い分けられるようにしていきたいです。
訂正等ありましたらコメントにて教えていただけると幸いです。