herokuにデフロイした時のメモ
2013年7月14日 タイムゾーンに関する記述を追加しました。
概要
無職中で暇なので、Herokuを使ってみました。Herokuはアカウントだけ作って触ったことなかったので、ドキドキでつまずきまくったけど、実質1時間くらいでデフロイできました。たぶん、普通にrails開発をしていて以下のことをすればHerokuへのデフロイは完了すると思います。
参考URL
他の参照したページもあるのですが、内容が重複していたり、情報として古くなったものもあったので、主観で覚えときたいリンクだけを残しました。
Herokuにデフロイする時に特別にした作業
heroku-toolbeltをインストールしてHerokuにログイン
昔は heroku
っていうgemを使ってたような話を聞いたことがあるけど、今はコマンドラインツールをHerokuが提供してくれているらしい。
brew install heroku-toolbelt
でインストール完了。
次に
heroku login
ってコマンドを打つと、
Enter your Heroku credentials. Email: hogehoge@email.com # Herokuでログインしているメールアドレス Password (typing will be hidden): # Herokuのパスワード Found the following SSH public keys: # ~/.ssh/にあるファイルを自動的に探してくれる。複数ある時はどっちを使うか聞かれる。 Which would you like to use with your Heroku account? 2 Uploading SSH public key /Users/hoge/.ssh/id_rsa_hogehoge.pub... done Authentication successful.
こんな感じで
- ログイン
- sshの登録
をしてくれる。
環境変数の扱い
Herokuコマンドで環境変数を設定することをよく書かれているけど、僕はfigaroっていうgemを使っていたので、
rake figaro:heroku
ってすると開発環境で使用している環境変数をHerokuに設定してくれます。
sqlite3をdevelopment、test グループに移動して pg をproductionにした
これは有名なことなので詳細は割愛。
rubyのバージョンを指定した
本日(2013年7月1日)現在、Heroku上のデフォルトのrubyバージョンは2.0です。
ruby1.9.3を開発時使用していたら、Gemfileに
ruby "1.9.3"
と書きましょう。
rails_12factor gem を入れた
HerokuのGetting Started with Rails 4.x on Heroku と公式に書いてあるのでそのまんま入れといた。
上記リンクには「静的なasset機能とlogの機能をうまく処理してくれる」っぽいことが書かれていた。
config.assets.initialize_on_precompile = false
を追加した
知っておきたい!Herokuを使う上では当たり前?の16の常識 にとにかく「書いとけ」とのこと。
タイムゾーンを設定した
アプリケーション内のタイムゾーンを設定します。
しかし、これをしても heroku logs
で見れる時刻は設定したタイムゾーンを示してくれません。
heroku config:add TZ=Asia/Tokyo
他の記事で書かれていなくて、心配だったこと
開発時はsqlite3を使っていたので、database.ymlは全く変更していませんでした。当然production環境の設定もsqlite3です。 dbの接続情報もHeroku上では公開されてなさそうだしどうしたものか。。。
しかし、この心配は杞憂に終わりました。
普通にHerokuにpushすると
-----> Writing config/database.yml to read from DATABASE_URL
とログに出ていました。Herokuが勝手にやってくれるらしい。
あやふやなこと
Herokuを使う時、アセットパイプライン関係でハマるというイメージをなんとなく持っていたんだけど、とくにはまらなかった。
対策っぽいことをしていたことはしたけど、「アセットをプレコンパイルしたよー」って以下のログが出たのは
-----> Preparing app for Rails asset pipeline Running: rake assets:precompile Asset precompilation completed (49.11s)
sass-railsをassetグループから外した後にデフロイした後だった。
rails_12factorを入れたり、 config.assets.initialize_on_precompile
を false
にしたりってのは不要なのかな。。。
- 作者: 掌田津耶乃,相澤歩
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2013/03/15
- メディア: 大型本
- クリック: 7回
- この商品を含むブログ (2件) を見る