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

【Heroku/Rails6】Error: error:0308010Cでデプロイ出来ない時の解決方法

Last updated at Posted at 2023-11-06

はじめに

このエラー解決方法の解説記事は世の中に溢れています。
ですが記事通りに設定したのに何故かデプロイ出来なくて沼りました。
自分と同じ状況の助けになれば幸いです!

バージョン

  • Ruby 2.7.7
  • Rails 6.0.6.1
  • Mac OS

結論

ターミナルで下記実行する。

heroku config:set NODE_OPTIONS='--openssl-legacy-provider'

※Heroku CLIのインストールが前提
https://devcenter.heroku.com/ja/articles/config-vars#using-the-heroku-cli

そもそも公式が解決方法を提示している

https://github.com/webpack/webpack/issues/14532
公式より回避策として下記を実行しろ、と書いてあります。

export NODE_OPTIONS=--openssl-legacy-provider

しかし実行してもエラーが消えず、Node.jsのバージョンをいじったり色々しました。。。

コマンドの意味

そもそも解決方法のコマンドが何をしているか理解していませんでした。
調べてみると、'NODE_OPTIONS'という環境変数に'--openssl-legacy-provider'を設定しているようです。
環境変数については下記で学びました。Linux基礎勉強不足。。
https://wa3.i-3-i.info/word11027.html
https://linuc.org/textbooks/linux/

結局何が起きているのか

2023.11月時点ではHerokuのNode.jsのバージョンがv20.9.0となっています。
v17.0以降だとOpenSSLの大きな変更があり、これがwebpackerに対応していないようです。
だから、前の方法でOpenSSL使ってね!という意味で環境変数を変更するコマンドを叩いていました。
しかし公式が提示しているコマンドを叩くだけだと、Heroku側の環境変数が変更されていない為Herokuで用意されているコマンドを追加して設定する必要がありました。

最後に

環境変数の概念を理解していなかった事が最大の要因でした。(ローカルとHerokuで環境変数を別に設定する概念がなかった)
分かる人にはレベルの低い話だと思いますが、一つずつ強くなっていきます!

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