WEBサービス創造記

WEBサービスを作ったり保守したりしてる人のメモブログです。

HerokuのRailsアプリの環境をstagingに設定する

   

1. Herokuアプリの環境変数をstagingに設定する

設定の対象が新しく作るアプリか既存アプリかで手順が異なる。

新しくアプリを作る場合

下記コマンドで環境をstagingと指定してい作成。

$ heroku create app-name --remote staging

もしすでに他のHerokuアプリが登録されている場合は、複数のHerokuアプリが存在することになるので、今後はherokuコマンドを使うときに対象のアプリを指定する必要がある。
下記はその例。

$ heroku logs --app jp.linuxserver.sandbox

既存アプリを設定の対象にする場合

デフォルトでは下記のようにRAILS_ENVなどの環境変数はproductionになっている。

heroku config --app app-name
RACK_ENV:                 production
RAILS_ENV:                production

これを下記のコマンドでstagingに変更する。

$ heroku config:add RACK_ENV=staging --app app-name
$ heroku config:add RAILS_ENV=staging --app app-name

2. Gitでのリモートリポジトリ設定

`git push staging master`のようにpushできるようにするために設定。
※`git push heroku master`のままでよければ不要

これも新しくアプリを作るか既存のアプリの設定を変えるかで手順が違う。

新しくアプリを作る場合

最初からリポジトリ名stagingで登録すればOK。

git remote add staging git@heroku.com:app-name.git

既存アプリを設定の対象にする場合

デフォルトでは下記のようにherokuと言う名前でリモートリポジトリが登録されている。

$ git remote -v
heroku  https://git.heroku.com/com-okishima-sandbox.git (fetch)
heroku  https://git.heroku.com/com-okishima-sandbox.git (push)
origin  git@bitbucket.org:vertex-japan/sandbox.git (fetch)
origin  git@bitbucket.org:vertex-japan/sandbox.git (push)

これをstagingに変更する。

$ git remote rename heroku staging

3. Railsでの設定

staging用の環境設定ファイルを用意する。

$ cp config/environments/production.rb config/environments/staging.rb

ここでは取り急ぎproductionの設定ファイルを基にしたが、適宜設定を行う。

また、Gemfileでもstagingグループの追加を行う。

group :production, :staging do
  gem 'pg'
end

さらに、config/database.ymlやconfig/secrets.ymlなどの設定ファイルでstaging用のセクションを追加しておくことも必要。

4. stagingへのデプロイ

ここまでの手順で`git push staging master`でデプロイできる。

 - Ruby on Rails , , , , ,