Herokuの無料プランが廃止され、代替サービスのRender.comを使ってみました。
非常に参考になる記事がありましたので、まずは上の記事を読んでいただくことをおすすめします。
この記事では注意点を補足したいと思います。
render.yamlの設定
Blueprintsを使用するために、render.yamlを設定します。
その時、plan: free
が書かれていることを確認してください。
これを設定しないと、Render.comでBlueprint Instanceを作成する時、クレジットカードを要求されます。
databases:
- name: rails7_sample_staging
databaseName: rails7_sample_staging
user: rails7_sample
region: singapore
services:
- type: web
name: rails7-sample-staging
env: ruby
region: singapore
plan: free #確認
buildCommand: "./bin/render-build.sh"
startCommand: "bundle exec puma -C config/puma.rb"
envVars:
- key: DATABASE_URL
fromDatabase:
name: rails7_sample_staging
property: connectionString
- key: RAILS_MASTER_KEY
sync: false
データベースのエラー
以下のようなエラーが出てる場合、bundle exec rake db:migrate
が出来ていない可能性が高いです。
# PostgreSQL
ActiveRecord::ConnectionNotEstablished (connection to server on socket /var/run/postgresql/.s.PGSQL.5432 failed: No such file or directory
その場合、Blueprintsが正しく設定できているか、render-build.sh
を正しく設定できているか、render.yaml
でbuildCommand: "./bin/render-build.sh"
と設定できているかを確認してください。
もしBlueprintsがどうしても設定できない場合、手動で設定することもできます。
1.Render.comのSettingsからBuild Command
・Start Command
を下記のように設定してください。
# Build Command
./bin/render-build.sh
# Start Command
bundle exec puma -C config/puma.rb
2.Render.comのEnvironmentからEnvironment Variables
を下記のように設定してください。
Key | Value |
---|---|
RAILS_MASTER_KEY |
config/master.key ファイルの内容を貼り付ける |
これでエラーが解決できると思います。
参考