heroku向けrubyアプリと環境変数
twitter apiなどを使うアプリではその認証情報が必要になるけど、これを直接コードに書いたままgithubでさらしてしまう等はよろしくないので環境変数を使いたい。そこでheroku向けのrubyアプリでの環境変数の使い方について調べたのでメモ、、、と思ったら@shimosukさんの記事を発見、ここにほとんど書かれてました。
Railsアプリで認証のための情報はバージョン管理に含めないために - 千鳥足プログラマーの歩む道@shimosuk
ということでここに書かれてないことだけメモ。
sinatraアプリのProcfile
sinatraアプリの場合はProcfileはこんな感じになります。
web: bundle exec ruby app.rb -p $PORT
さらにshotgunで起動する場合はこんな感じ。
web: shotgun app.rb -p $PORT
Procfileを指定
foremanのfオプションを使えば任意のProcfileを指定することができる。例えばProcfile.devというファイルを指定して起動するのはこう。
$ foreman start -f Procfile.dev
これなら通常起動とshotgun起動それぞれのProcfileを用意しておき任意で切り換えることが可能。
.envを利用してherokuの環境変数を一発更新
heroku上の環境変数の設定方法のひとつにheroku-configというプラグインを使う方法があって、これなら.envファイルを利用して一発設定ができて便利。まずはプラグインのインストールを。
$ heroku plugins:install git://github.com/ddollar/heroku-config.git
下記コマンドを叩くだけで.envファイル内で定義された内容がherokuの環境変数に反映されます。
$ heroku config:push
個々設定は手間だと思っていたのでこれは便利。詳しくはここに。
Configuration and Config Vars | Heroku Dev Center