5
3

More than 1 year has passed since last update.

Render.com にRailsアプリをデプロイ / 設定でつまったところ紹介

Posted at

はじめに

 さくらVPSヘのデプロイは中止した。非常にややこしいことになってきたためだ。また別記事にまとめる。もっと簡単にデプロイする場所を探して、最近流行りつつあるRender.comを使った。

Render.comとは

 PaaSのひとつで、Herokuよりも価格が安く柔軟に対応できるらしい。Renderの公式サイトで以下のような挑戦的な記事があった。

 どちらも無料でつかえるプランがあるし、速度については比較してみないと違いがよくわからない。

設定でつまったところ

 ちょー簡単にデプロイまでできるのだが、すこしつまったところがあった。Render.comでは「Build Script」というスクリプトを書いて、デプロイの際にそれが実行されるようにしている。

ただ、私の場合はなぜかそれが反映されなかった。(無料プランのため?)そのため設定の「Build Command」を編集しないといけなかった。

変更前

bundle install 

変更後

bundle install && yarn install && bundle exec rake assets:precompile && bundle exec rake assets:clean && bundle exec rails webpacker:compile && bundle exec rake db:migrate

Build Commandの入力欄は1行だったので、&&でコマンドをつなげた。

各種エラーの記録

 何度もデプロイしてはだめ、を繰り返した。ちょっとしんどかった。エラーも記録しておく。

エラー1: application.css is not present in the asset pipeline

 ActionView::Template::Error (The asset "application.css" is not present in the asset pipeline.

 application.cssがアセットパイプラインというところになかった。これはconfig/environment/production.rb を以下のように修正した。

config/environment/production.rb
# 略
config.assets.compile = true  #falseからtrueへ変更
# 略

これは動的コンパイルと呼ばれる手法らしく、以下に説明があった。
なぜこれをするとエラーが直るのか。調べないといけない。

エラー2: File to import not found - bootstrap

(Error: File to import not found or unreadable: bootstrap/scss/bootstrap.
   on line 110:1 of app/assets/stylesheets/application.scss
 >> @import "bootstrap/scss/bootstrap";

bootstrapが見つからないというエラーだったが、これはRender.comのサーバーにbootstrapが入っていないためだった。最初のデプロイ時にyarn installをすると、ローカルのyarnのlistに沿ってダウンロードしてくれる。

エラー3 : Webpacker can't find

ActionView::Template::Error (Webpacker can't find application in /opt/render/project/src/public/packs/manifest.json. 

webpackerが入っていないだけだった。これもデプロイ時に以下のコマンドを追加して治った。
bundle exec rails webpacker:compile

おわりに

 やっとWebサービスをデプロイすることができた。はやく運用までもっていけるように、細々とした修正をやっていこう。

参考:

5
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3