この記事について
Herokuでのデプロイの予定だったが、有料化に伴いRenderを使用してデプロイを行ったので手順についてまとめます。
render公式の手順を参考に進めていきます。
事前準備
アプリ作成済み
Github連携済み
1.Renderに登録する
- まずは下記URLからrenderに登録します。
Webサービスの作成
ログインしたらNew+をクリックし、Web Serviceを選択する

すると以下の画面になるので、右側にあるConfigre accountをクリックします。

githubのページに転移するので、Repository accessのOnly select repositoriesのSelect repositoriesからレポジトリを選択し、Saveをクリックします。

renderのページに戻ったら、対象のリポジトリの右側にあるConnectをクリックしてください。

フォームが表示されますので、情報を記入していきます。
Name:作成したサイト名
Region:Singapore (Southeast Asia)←日本が選択できないため、最も地理的に近い「Singapore」を選択しています。
Branch:main(masterの方もいると思いますので適宜記入)
Root Directory:とりあえず空欄
Runtime:Ruby
Build Command:後ほど修正できるため一旦そのまま
Start Command:後ほど修正できるため一旦そのまま
Plans:Free
Advanced 後ほど修正できるため一旦そのまま
ここまで記入したらCreate Web Serviceをクリックします。

すると、作成したアプリのページが開かれます

これでWebサービスの作成は終了です。
2.データベースの作成
続いてデータベースの作成を行います。
右上のNew+ボタンをクリック,PosgreSQLを選択します。

フォームに以下の情報を記入します。
Name:データベースの名前
Database:データベースの名前
User:ユーザー名
Region:Singapore (Southeast Asia)
PostgreSQL Version 人によって変わるため分からない方は、ターミナルでpsql --versionのコマンドを打ち込んでバージョンを確認してください。
Datadog API Key:記入しない
Plans:Free
Create Databaseをクリックするとデータベースが作成されます。

これでデータベースが作成されました。
3.ファイルの作成、編集
続いて諸々のファイルの編集、作成を行います。
まずは、以下ファイルの部分をコメントアウト、編集します。
- # preload_app!
+ preload_app!
- # workers ENV.fetch("WEB_CONCURRENCY") { 2 }
+ workers ENV.fetch("WEB_CONCURRENCY") { 4 }
- config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?
+ config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present? || ENV['RENDER'].present?
続いてデプロイ用のファイルを作成します。
#!/usr/bin/env bash
# exit on error
set -o errexit
bundle install
yarn install
bundle exec rails assets:precompile
bundle exec rails assets:clean
bundle exec rails webpacker:install
bundle exec rails webpacker:compile
bundle exec rails db:migrate
このファイルがデプロイ時に実行されますのでrender側で設定する必要があります。
Webアプリのページから左側のSettingsをクリックし、下の方にいくとBuild Commandという欄がありますのでそこに以下コマンドを記入して

- $ bundle install; bundle exec rake assets:precompile; bundle exec rake assets:clean;
+ ./bin/render-build.sh
次はデータベースの設定を行います。
本番環境ではPostgreSQLを使用するため、以下のようにdatabase.ymlの設定を変更します。
※赤くなっているところを修正してください。
databases:
- name: データベース名
databaseName: データベース名
user: ユーザー名
region: singapore
services:
- type: web
name: アプリ名
env: ruby
region: singapore
buildCommand: "./bin/render-build.sh"
startCommand: "bundle exec puma -C config/puma.rb"
envVars:
- key: データベースのURL
fromDatabase:
name: データベース名
property: connectionString
- key: マスターキー
sync: false
そして、startCommand: "bundle exec puma -C config/puma.rb"という一行をrender側で設定します。
WebアプリページのSettingsのStart Commandを編集します。
- $ bundle exec puma -t 5:5 -p ${PORT:-3000} -e ${RACK_ENV:-development}
+ bundle exec puma -C config/puma.rb
4.環境変数の設定
WebアプリページのEnvironmentからAdd Environment Variableをクリックすると、keyとValueの設定が可能となります。
下記のようにDATABASE_URLとRAILS_MASTER_KEYを設定します。

-
DATABASE_URLの確認
データベースのページのConnectionsというところにInternal Database URLという項目があるのでその値を上記画像のvalueの部分に貼り付けてください。 -
RAILS_MASTER_KEYの確認
プロジェクトファイルのconfig > master.keyに記載されている文字列を上記画像のvalueの部分に貼り付けてください。
5.プロジェクトフォルダ内での環境設定
.envにConnectionsに記載されている値を設定します。
マスターキーは先程確認したものを設定してください。
任意の環境変数名 = 'Passwordの値'
任意の環境変数名 = 'Internal Database URLの値'
任意の環境変数名 = 'master.keyの値'
これで環境変数の設定は完了です。
6.Githubにアップロード
最後に、Githubにアップロードして、URLをクリックして確認してみてください。
無事、自分が作成したアプリが表示されれば完了です。
参考記事