railsアプリをGitHubを通してherokuにデプロイ | Appleメモログ

railsアプリをGitHubを通してherokuにデプロイ

railsアプリをGitHub連携でherokuにデプロイした。さらにPiplineを使って、Review, Staging, Production の段階的なデプロイを実現した。

行きづまったところとかやり方のメモ。

1. railsアプリをGitHub連携でherokuにデプロイ

herokuにデプロイする。

参考:【初心者向け】railsアプリをherokuを使って確実にデプロイする方法【決定版】

qiita

1.1. railsアプリ作成

まずは、herokuにデプロイするためのrailsアプリを作る。

1.railsプロジェクト作成
2.config/routes.rbの設定
3.Gemfileの設定
4.config/database.ymlの設定

Gemfileの設定

上記4.Gemfileの設定について。

Gemfile中のsqlite3をコメントアウトする必要がある。これはherokuでsqlite3を使えないため。herokuではpostgreSQLが入ってるのでそれを使う。

Gemfileを変更したら bundle install

1.2. GitHubにpush → herokuにデプロイ

作成したrailsアプリをgithubにpushする。

herokuにログインし、create new app.

[deploy]タブで[GitHub]選択し、該当のリポジトリ選択。deployする。(ここではmasterをデプロイするため、Automatic Deploys はDisableとしておく)

デプロイ成功したらアプリのページを確認。

デプロイに失敗した

最初試したときデプロイに失敗した。上記Gemfileで sqlite3 → postgreSql に設定していなかったため。
参考URL通りに行ったらデプロイ成功した。

ページを開くとエラー

デプロイは成功したが、ページを開くとエラーになった。ログを見たりググってみたりしたところ、どうやらmigrateしていなかったためだった。

heroku側をmigrateするため、
heroku rake db:migrate -a appName
を試した。

しかし、timeout。 これの原因は未だによく分かっていない。

結局heroku側のコンソールで rake db:migrate を実行すると無事マイグレーションされた。

2. herokuのPiplineを使って段階的にデプロイ

試しにパイプライン使ってみた。review → staging → production とデプロイしていく感じ。

参考:Heroku Pipelineを使ってみる

qiita

2.1. Pipelineを作成

新しくPipelineを作成する。

production には master ブランチをデプロイ。これは上の項目でデプロイしたものを使う。

staging には develop ブランチをデプロイする。create new app してパイプラインに割り当てる。 Automatic Deploys はEnableとした。

review にはプルリクしたブランチが勝手にデプロイされるらしい。マージされた後には勝手になくなるようだ。

review には app.json にスクリプトを記述することで、デプロイ後にそれを実行してくれるらしい。ここでマイグレーションを勝手に実行してくれるようにしたかったがうまく行かなかった。デプロイ後に手動でマイグレーション行った。

3. まとめ

webアプリをgithubからherokuにデプロイして公開してみたかったので試した。
本当はSAStrutsのJavaプロジェクトでやりたかったが、いまいち参考サイトが少なく断念。Railsは参考サイトが多かったためこちらで試した。

結果として、デプロイやパイプラインの使用はできた。
しかし、ターミナルからのマイグレーションやreview のスクリプト実行による自動マイグレーションはうまくいっていない。今後できるようにしたい。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする