sense

知っておくと便利なこと、最初につまずきそうなことを中心にまとめています。ちょっとした備忘録も兼ねています。

Ruby on Railsで作ったアプリケーションをMOGOKで公開してみる(2/2)

前回の続きです。

 

アプリケーションを公開

アプリケーションをビルドして、データベースマイグレーションまでやってみます。

mogok build
mogok rake db:migrate

mysql2を使ってくださいと言われました。Gemfileを編集しましょう。

gem 'mysql2'

を追記してください。その後、commit->pushし、再びビルドとマイグレーション

今度はうまくいったみたいなので、アプリケーションを起動。

mogok start

アプリケーション起動成功。しかし、ページを開いてみると、「Internal server error」...

こういうときは、ログを見るのが鉄則ですね。

mogok log

じっくり見ていくと、compiled assetsがないと言われてるのに気づく。

rake assets:precompile

で、commit->push->buildとやっていき、アプリケーションを再起動。

mogok stop
mogok start

しかし、再び「Internal server error」。これが直接的な原因ではないみたいです。

もう一度ログを確認すると、secret key baseがないと言われてることに気づきました。config/secrets.ymlを見ると、production環境ではsecret key baseが環境変数が使われていました。

mogok secret

これでシークレットキーが出力されます。これを環境変数として設定します。

mogok env set SECRET_KEY_BASE <シークレットキー>

ページにアクセスすると、成功します!

 

終わりに

ここまでの流れはMOGOKのDocumentsのチュートリアルhttp://mogok.jp/documents/rails_deployment_guide)で確認できる内容でもありますが、Windows環境でない場合の一例として紹介してみました。

よくよく見るとMOGOKはまだRuby 2.2に対応してないし、いろいろと無茶苦茶なこともしていますが、そこらへんは目を瞑って頂ければと思います。

これを参考に新しいアプリケーションを作ってぜひ公開してみてください。