sk

開発で得たこと

環境変数の設定

環境変数とは

  • ドメインなど環境によって使い分けるもの
  • APIなどに用いるKEYを隠せるようにするもの

開発・ステージング・本番環境によってドメインは異なります。 コードでドメインありきで処理をしなければならない場合、環境ごとにドメインが変わってもらう必要があります。

API KEYなどはGitHubのレポジトリあげる際に、外部に公開される危険性があります。 ローカルにのみAPI KEYがある状態でないといけない場合があります。

以上のようなケースで環境変数が使われます。

インストール

Gemfile

gem 'dotenv-rails'
bundle install

変数の設定

ディレクトリ直下に以下のファイルを作成します。 .env

WEB_DOMAIN=localhost:3000

コンソールで確認してみましょう。

> Dotenv.load => {"WEB_DOMAIN"=>"localhost:3000"}
> ENV['WEB_DOMAIN'] => "localhost:3000"

このように.envファイルに設定した環境変数を読み込むことができます。 これを開発環境・ステージング環境・本番環境にそれぞれ設定していくとになります。

レポジトリに環境変数が上がらないようにする

.gitignore に設定をして、 レポジトリに .env が上がらないようにします。

.gitignore

# dotenv
/.env

サンプルの用意

この .env は自分しか保有しておらず外部の人が知るすべがありません。 共同開発者が環境変数を自分のもので設定するときに属性名(KEY)の情報が必要になります。

そこで、以下のファイルを作成します。

dotenv.sample

WEB_DOMAIN=""

こうすることで共同開発者はどのキーを設定すれば良いかがわかるようになります。

Heorokuで設定

Heroku(ステージングまたは本番環境)で環境変数を設定します。 Herokuのダッシュボードを開いてください。

Settingsタブをクリックします。 そのページのReveal Config Varsをクリックすると現在設定されている環境変数が表示されます。

この一番したの空白入力欄にキーとバリューを入力し、「Add」ボタンを押すと環境変数が設定されます。 f:id:sksksksksk:20180729145431p:plain

ソースコード

github.com

参考

github.com

質疑応答

コメントしてください。

ProgateやRailsチュートリアル、プログラミングスクールを通い終えたが現場のコードはかけない、

一体どうやって書くの?と思っているエンジニアのみなさんのためのチュートリアルを公開しています。

チュートリアル