9
2

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.

RailsをRenderでデプロイ ヘルプ集【備忘録】

Last updated at Posted at 2022-12-03

背景

以下の記事でデプロイを進めていく中で、わかりにくいことがあったので
その備忘録です!

流れ

今回のヘルプ集は上述の記事の中でフワッと記述されていた部分のみ抜粋します!

  1. マスターキーについて
  2. Gemfileについて
  3. render-build.shについて
  4. render.yamlについて
  5. 外部サービスとの連携(APIキーの設定)

マスターキーについて

このマスターキーが出現するのはこの部分になります。
image.png

このように記述されていますが、あまり詳しくない方はわからないかもしれません。
このマスターキーに関しては、以下の流れで進めていけば問題ありません!

  1. コマンドを実行してマスターキーを生成
  2. Githubにpush
  3. Render.comのWebサイト上で環境変数を追加

コマンドを実行してマスターキーを生成

まず、ターミナルで以下のコマンドを実行しましょう。
手動で以下の階層にあるファイルを削除してもらっても大丈夫です!
(ファイルが見当たらない場合は実行せずに次のコマンドに進みましょう〜)

ターミナル
# Railsプロジェクトの階層で実行, ファイルを削除するコマンド
rm config/credentials.yml.enc config/master.key

次に、マスターキーを生成します。

ターミナル
EDITOR="vi" rails credentials:edit

Githubにpush

マスターキーの生成は終わったので、Githubにpushします。

ターミナル
git add .
git commit -m "masterKey生成"
git push origin HEAD

Render.comのWebサイト上で環境変数を追加

最後に、Render.comで環境変数としてマスターキーをセットします。
Dashboard>左のサイドバーにある「Environment」
image.png
既にDATABASE_URLがセットされていますが、みなさんはセットされていないかもしれません。
このようにマスターキーをセットしましょう。

マスターキーのValueはconfig/master.keyの内容です!

Gemfileについて

Gemfileの変更は明記されていませんでしたが
ポスグレ(postgreSQL)を使えるようにしないといけないです。
公式で明記されています

以下のような変更を加えてください。

Gemfile
# ~~~長いので割愛~~~
group :test do
  # Adds support for Capybara system testing and selenium driver
  gem 'capybara', '>= 3.26'
  gem 'selenium-webdriver'
  # Easy installation and use of web drivers to run system tests with browsers
  gem 'webdrivers'
end

+group :production do
+  gem "pg", "~> 1.4"
+end

# ~~~長いので割愛~~~

Gem追加後は以下のコマンドを実行しておきましょう。

ターミナル
bundle install

render-build.shについて

bin/render-build.shの内容に関してですが
以下の内容で大丈夫です!

bin/render-build.sh
#!/usr/bin/env bash
# exit on error
set -o errexit

bundle install
bundle exec rake assets:precompile
bundle exec rake assets:clean
bundle exec rake db:migrate

render.yamlについて

ここが1番の難所です。
手動でDBとRailsを繋ぐなんてしたことない人は
正直さっぱりだと思います。
(筆者は初めてだったので結構手こずりました😅)

具体的には以下のような内容で問題ありません!

render.yaml
databases:
  - name: Renderで作成したDBアプリ名
    databaseName: 「Info内のConnectionsにあるDatabase」を入れる
    user: Renderで作成したRailsのアプリ名
    region: singapore

services:
  - type: web
    name: Renderで作成したRailsのアプリ名
    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: Renderで作成したDBアプリ名
          property: connectionString
      - key: RAILS_MASTER_KEY
        sync: false

buildコマンドの編集

SettingsBuild & DeployにあるBuild CommandをEditを押して以下のコマンドに変更します。
image.png

seedがない場合

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

seedがある場合

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

画像が表示されない

画像系のURLの中身を<%= asset_path('picture1.png') %>に変えましょう!

具体例

background-image: url('<%= asset_path('picture1.png') %>')
background: url('<%= asset_path('picture1.png') %>')
<img src='<%= asset_path('picture1.png') %>'/>

外部サービスとの連携(APIキーの設定)

ダッシュボードからアプリに行った先の
「Environment」から環境変数をセットします。
筆者はCloudinaryを利用して画像投稿機能を実装していたので
以下のようにセットしました!
image.png

参考文献

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?