LoginSignup
2
3

[Rails6] Heroku&AWSデプロイ時トラブルシューティング(忘備録)

Last updated at Posted at 2023-06-14

はじめに

2023/6/14時点の現在、以下の環境でRailsアプリを作成し、Herokuにデプロイしようとするとエラーが多発する状態です。エラーが出る根本的な原因はわからないのですがデプロイをするところまで出来たので方法をシェアします。

#6/17追記
AWSデプロイ時に出たbabelエラーにも同じ対応で解消できたので記事タイトルを変更


環境

Ruby 3系
Ruby on Rails 6.1系


Two different lockfiles found.package-lock.json and yarn. lock

rails new

で作成したアプリにpackage-lock.json と yarn. lockの両方あると発生するエラー。

どちらかを消せば解決します。

git rm package-lock.json

今回は上のコードを実行しpacage-lockを消します。

実行後、git add , git commitをして git push heroku master をすると以下のトラブルがでます。


The Ruby version you are trying to install does not exist on this stack.

スクリーンショット 2023-06-14 11.11.12.png

Rails6.xx系はHeroku-22に対応してないのでこのエラーが出ます。

heroku stack:set heroku-20

をターミナルで実行すれば解決します。

上のコードを実行後 git push heroku masterをすると以下のトラブルが発生。


Failed to install gems via Bundler.

スクリーンショット 2023-06-14 11.12.37.png

エラー文にある通りx86_64-linuxをロックする必要があるときに出るエラー。

bundle lock --add-platform x86_64-linuxを実行後git add ,git commitをすると解決します。

上のコードを実行後 git push heroku masterをすると以下のトラブルが発生。


Error: Cannot find package '@babel/plugin-proposal-private-property-in-object'

スクリーンショット 2023-06-14 11.16.14.png
スクリーンショット 2023-06-14 11.16.32.png

最近、@babelがアップグレードしたことに起因するエラー?

yarn upgrade @babel/core

をターミナル上で実行

次にアプリのpackage.jsonに

"@babel/plugin-proposal-private-property-in-object": "^7.21.11",
"webpack-dev-server": "^3",
"@babel/core": "^7.0.0"

の3行を追加。
本番環境で使用したいので"dependencies"配下に追記する必要があります。
”devDependencies"配下に追記しない様に注意

スクリーンショット 2023-06-14 12.56.31.png

git add , git commitで解決します。

上のコードを実行後 git push heroku masterをすると以下のトラブルが発生。


error Your lockfile heeds to be updated……--frozen-lockfile'

error Your lockfile heeds to be updated, but yarn was run with
--frozen-lockfile'

yarn.lockファイルのバージョンが異なっているためBuildで失敗しているらしいです。

yarn install

をターミナルで実行後、git add , git commitで解決します。


Error: error:0308010C:digital envelope routines…

Error: error:0308010C:digital envelope routines: :unsupported

スクリーンショット 2023-06-14 11.53.13.png

HerokuにおいてNode.jsのデフォルトバージョンが18系になっていることが原因。

package.jsonに

"engines": {
  "node": "16.x"
  }
}

をターミナルで実行後、git add , git commitで解決します。


以上のトラブルを乗り越えると無事、Herokuにデプロイすることができました。

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