Railsアプリを作成してHerokuにDeployしたりBitbucketで管理・自動Deployしたりしてみる


はじめに

エンジニアだけど流行りのRailsもHerokuも触ったことないのでお勉強しました。その記録です。

Herokuにデプロイするだけ、とかRailsのDockerコンテナ立ち上げるだけ、の記事は山ほどあるけど、一連の流れをまとめた記事は少ないと思うので誰かの参考になればと思います。

対象読者

  • Railsをこれから頑張りたい人
  • どうせならHerokuとはPaaS使ってみたい人
  • どうせならBitbucketとかでソースコード管理もしたい人
  • 自動Deployとかやってみたい人
  • Dockerへの理解が最低限ある人

こんな感じで進められたらいいな

  • rubyやrailsとは何ぞやを知る
  • rubyとrailsをdocker-composeでインストール
  • ローカルでお試しアプリを実行(Hello World!的な)
  • herokuにデプロイ、heroku上でお試しアプリを実行
  • bitbucketでソースコード管理
  • bitbucketへのpush⇒heroku deployを自動化
  • rubyとrailsのお勉強

Railsがどんなもんか知る

侍エンジニア塾の記事だけど参考になりました。
Ruby on Railsで何ができるの?特徴と使われているサービスを紹介

Stable Versionの確認

RubyとRailsをDockerでインストール(失敗)

以下の記事のうち、RubyとRailsのバージョンを変えて実行しましたが、上手くrailsがインストールされずに詰みました。
バージョン変えないでやってもダメだったけど、そもそも自分はWindows。

丁寧すぎるDocker-composeによるrails5 + MySQL on Dockerの環境構築(Docker for Mac)

RubyとRailsをDockerでインストール(成功)

別記事にまとめました。

Dockerを使ってRuby2.7&Rails6を構築

Herokuにデプロイ

以下の記事を参考にしました。

Dockerで作成したRailsアプリをHerokuにデプロイ

routing設定が必要っぽい

上記の記事だけではHerokuアプリをopenしても「The page you were looking for doesn't exist.」というエラーがページに表示されてしまいました。

heroku logsコマンドを実行してみると、以下のようなエラーが出ていました。
ちゃんとrouting設定しないとダメなのね。

2020-01-07T12:06:43.026134+00:00 app[web.1]: F, [2020-01-07T12:06:43.026075 #4] FATAL -- : [0a6f4dbc-17ef-4603-a238-07ae198739cb] ActionController::RoutingError (No route matches [HEAD] "/"):

参考:Herokuへデプロイした時に「The page you were looking for doesn't exist. 」エラーが出る

というわけで、config/routes.rbを以下のように記述。

routes.rb
Rails.application.routes.draw do
  # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
  root  'rails/welcome#index'
end

そしたら無事に「Yay! You’re on Rails!」が表示されました。

BitbucketにpushしたらHerokuへ自動デプロイ

Bitbucketでリポジトリ作成

以下の記事が参考になりました。

Bitbucketに新規リポジトリを作成後、既存の作業ディレクトリと紐付ける

手動デプロイの記事ですが、Bitbucketで自動デプロイするように設定するのであれば、「コンテナをHerokuにプッシュ」以降の手順は不要です。

Bitbucketのアカウントは適宜作成。
Bitbucketで新規レポジトリを作成する場合は、「READMEを含めますか?」で「いいえ」を選択しましょう。既存ディレクトリをpushする場合はREADME.mdがあるとpushできません。

Herokuへ自動デプロイ

以下の記事が参考になりました。

【令和元年版】BitBucket PipelinesでHerokuに自動デプロイ試してみた!

RubyとRailsの勉強

あとは文法とか最低限の知識を身につけて晴れてRailsエンジニアデビュー!
https://prog-8.com/
⇒少しProgate触ってみたけど実務経験のあるエンジニアにはだるいです。
 以下の記事を読めばもう書き始められると思います。

補足

herokuでの独自ドメインの設定

以下の記事が参考になりそう。

初めてHerokuで独自ドメインを公開するあなたへ