Rails 6 APIのみのアプリケーションをAWS Elastic Beanstalkで実行できません。そのアプリケーションのデプロイ後、pumaが「ワーカーの早期終了」というメッセージで止まります。私はしませんプロジェクトのカスタム構成や設定があります。環境を作成し、アーカイブされたZipファイルをアップロードするだけです。
コマンドpkill -9 -f puma
でプーマプロセスを強制終了した後、私のプーマ。ログファイルは次のようになります。
=== puma startup: 2020-01-22 13:17:45 +0000 ===
=== puma startup: 2020-01-22 13:17:45 +0000 ===
[28858] Early termination of worker
[28856] Early termination of worker
[28862] Early termination of worker
[28865] Early termination of worker
[28869] Early termination of worker
私はそのエラーを検索し、解決するものは何も見つかりませんでした。
Ruby 2.6 AWSの64ビットAmazon Linux/2.11.2で実行されている2.6でPumaを使用しています。
同じエラーが発生しました。それはプーマの別のパッチです。
私はエラスティックビーンズトークからこのスタックを使用していました
Ruby 2.6 AL2 version 3.0.1
64bit Amazon Linux 2 v3.0.1 running Ruby 2.6
Ruby 2.6.6-p146
RubyGems 3.1.2
Puma 4.3.3
...
私のプロジェクトのGemfile
は、このようにpuma
をインクルードしました。
gem 'puma', '~> 4.3.3'
私のプロジェクトは新しいプロジェクトのボイラープレートであり、新しいパッチバージョンである現在のプーマ4.3.5がリリースされるまで、「古い」プロジェクトは問題なく機能していました。
解決策は、Gemfile内のgemのバージョンを次のように修正することです。
gem 'puma', '= 4.3.3'
学んだ教訓は、常に環境を展開ツールの環境と一致させることです。最新のソリューションスタックバージョンを追跡します ここ 。
プロジェクトの構造について話すのを忘れました。 app /フォルダーの下にoverridesというディレクトリがあります。
最後に、app/overridesフォルダーが原因でピューマクラッシュが発生することがわかりました: Zeitwerkのフォルダーを無視する方法Rails 6?
App/overridesフォルダーを無視してenvironment.rbファイルを変更した後、プロジェクトがスムーズに動作し始めました。