2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Renderでのデプロイ

Last updated at Posted at 2023-06-20

この記事について

Herokuでのデプロイの予定だったが、有料化に伴いRenderを使用してデプロイを行ったので手順についてまとめます。
render公式の手順を参考に進めていきます。

事前準備

アプリ作成済み
Github連携済み

1.Renderに登録する

  • まずは下記URLからrenderに登録します。

Webサービスの作成

ログインしたらNew+をクリックし、Web Serviceを選択する
スクリーンショット 2023-06-20 17.58.00.png

すると以下の画面になるので、右側にあるConfigre accountをクリックします。
スクリーンショット 2023-06-20 18.10.23.png

githubのページに転移するので、Repository accessOnly select repositoriesSelect repositoriesからレポジトリを選択し、Saveをクリックします。
スクリーンショット 2023-06-20 18.18.13.png

renderのページに戻ったら、対象のリポジトリの右側にあるConnectをクリックしてください。
スクリーンショット 2023-06-20 18.20.36.png

フォームが表示されますので、情報を記入していきます。

Name:作成したサイト名
Region:Singapore (Southeast Asia)←日本が選択できないため、最も地理的に近い「Singapore」を選択しています。
Branch:main(masterの方もいると思いますので適宜記入)
Root Directory:とりあえず空欄
Runtime:Ruby
Build Command:後ほど修正できるため一旦そのまま
Start Command:後ほど修正できるため一旦そのまま
Plans:Free
Advanced 後ほど修正できるため一旦そのまま
ここまで記入したらCreate Web Serviceをクリックします。
スクリーンショット 2023-06-20 18.25.41.png
すると、作成したアプリのページが開かれます
スクリーンショット 2023-06-20 18.38.01.png
これでWebサービスの作成は終了です。

2.データベースの作成

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

3.ファイルの作成、編集

続いて諸々のファイルの編集、作成を行います。

まずは、以下ファイルの部分をコメントアウト、編集します。

config/puma.rb
- # preload_app!
+ preload_app!

- # workers ENV.fetch("WEB_CONCURRENCY") { 2 }
+ workers ENV.fetch("WEB_CONCURRENCY") { 4 } 
config/production.rb
- 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?

続いてデプロイ用のファイルを作成します。

bin/render-build.sh
#!/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という欄がありますのでそこに以下コマンドを記入して
スクリーンショット 2023-06-20 19.08.20.png

- $ bundle install; bundle exec rake assets:precompile; bundle exec rake assets:clean;

+ ./bin/render-build.sh

次はデータベースの設定を行います。
本番環境ではPostgreSQLを使用するため、以下のようにdatabase.ymlの設定を変更します。
※赤くなっているところを修正してください。

config/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アプリページのSettingsStart 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_URLRAILS_MASTER_KEYを設定します。
スクリーンショット 2023-06-20 19.27.14.png

  • DATABASE_URLの確認
    データベースのページのConnectionsというところにInternal Database URLという項目があるのでその値を上記画像のvalueの部分に貼り付けてください。

  • RAILS_MASTER_KEYの確認
    プロジェクトファイルのconfig > master.keyに記載されている文字列を上記画像のvalueの部分に貼り付けてください。

5.プロジェクトフォルダ内での環境設定

.envConnectionsに記載されている値を設定します。
マスターキーは先程確認したものを設定してください。

.env
任意の環境変数名 = 'Passwordの値'
任意の環境変数名 = 'Internal Database URLの値'
任意の環境変数名 = 'master.keyの値'

これで環境変数の設定は完了です。

6.Githubにアップロード

最後に、Githubにアップロードして、URLをクリックして確認してみてください。
無事、自分が作成したアプリが表示されれば完了です。

参考記事

2
3
0

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
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?