8
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.

【Railsチュートリアル】 renderへのデプロイが失敗する (環境:macOS)

Posted at

Ruby on Railsチュートリアル(第7版)で学習中の際に、renderへのデプロイが失敗する件について、
私が遭遇したパターンの解決法について紹介します

環境
MacBook Air (Retina, 13-inch, 2018)
macOS バージョン12.1(21C52)

解決したエラー文①

bundler: failed to load command: rake (/opt/render/project/rubies/ruby-3.1.2/bin/rake)
Nov 27 02:00:27 PM  /opt/render/project/.gems/gems/bundler-2.3.14/lib/bundler/definition.rb:434:in `validate_platforms!': Your bundle only supports platforms ["x86_64-darwin-21"] but your local platform is x86_64-linux. Add the current platform to the lockfile with (Bundler::ProductionError)

解決したエラー文②

ArgumentError: key must be 16 bytes

解決したエラー文③

! Unable to load application: LoadError: Error loading the 'sqlite3' Active Record adapter. Missing a gem it depends on? sqlite3 is not part of the bundle. Add it to your Gemfile.

そもそもエラー文ってどこで見れるの?

renderへのデプロイの場合、Dashboard→画面左の「Events」から
デプロイ状況の履歴が見れます。
そこで青字の「Deploy」を押していただければデプロイのlogが見れるかと思います。
そのlogの中からそれっぽい文を探してください(「error」で検索かけてもいいかもしれません)

それではエラー文を見ていきましょう

解決法

解決したエラー文①

bundler: failed to load command: rake (/opt/render/project/rubies/ruby-3.1.2/bin/rake)
Nov 27 02:00:27 PM  /opt/render/project/.gems/gems/bundler-2.3.14/lib/bundler/definition.rb:434:in `validate_platforms!': Your bundle only supports platforms ["x86_64-darwin-21"] but your local platform is x86_64-linux. Add the current platform to the lockfile with (Bundler::ProductionError)

エラー文①に対しての解決法
これはエラー文通りのコマンドを打つだけでいいです。

# 下記のコマンドを打つ
$ bundle lock --add-platform x86_64-linux

解決したエラー文②

ArgumentError: key must be 16 bytes

エラー文②に対しての解決法
スクリーンショット 2022-11-27 23.41.03.jpg
これはDashboradのEnvironmentのRAILS_MASTER_KEYのValueを
config/master.keyの中にあるkeyをコピペして入れてください
念のため確認のためのコマンドを入れておきます

# 下記のコマンドで表示されたkeyをコピペしてrenderのEnvironment Vulueに入れてください
$ cat config/master.key
==========
(出力例)
fbe9bp06e565bcaa8Hev1ff35108fb9d
==========

これで解決できなければ下記もご参照ください
Railsのmaster.keyで泣くほどハマった・・

解決したエラー文③

! Unable to load application: LoadError: Error loading the 'sqlite3' Active Record adapter. Missing a gem it depends on? sqlite3 is not part of the bundle. Add it to your Gemfile.

エラー文③に対しての解決法
config/database.ymlの中のadapterの設定値をpostgresqlに変更します

# database.yml(編集前)
$ cat config/database.yml
==========
(出力例)
default: &default
  adapter: sqlite3
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  timeout: 5000
==========
上記のadapter: sqlite3
をエディターを使用して編集します

# database.yml(編集後)
$ cat config/database.yml
==========
(出力例)
default: &default
  adapter: postgresql
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  timeout: 5000
==========

お疲れ様でした!
最後にGithubへのpushするのを忘れないようにしましょう!

参考にした記事

rails アプリを Renderにデプロイ時に ArgumentError: key must be 16 bytes が出る
Railsのmaster.keyで泣くほどハマった・・
herokuへデプロイ時のエラー

最後に

この記事が私のQiita初投稿&初めてのMarkdown記法です。
保険をかけているとかではなく、不備があればそれは単に僕の知識不足(お作法とかね)が原因なのでご指摘お願いいたします。

とりあえず完璧を目指すより完成を目指せの精神でつくったので、今後説明がわかりやすくなるように画像を入れたり文章を変える予定です。

8
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
8
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?