🐵

Cloud Runで8080PORTで起動できないエラーが発生する

2024/09/26に公開

はじめに

株式会社Mambacomの太田です。
今回はRailsアプリケーションをGitHub Actionsを使いCloudRunにデプロイしようとした際に発生したエラーについてお話します。

発生したエラー

ERROR: (gcloud.run.services.replace) Revision '*********' is not ready and cannot serve traffic. The user-provided container failed to start and listen on the port defined provided by the PORT=8080 environment variable. Logs for this revision might contain more information.

Cloud Runでよく見るエラーで、ポート8080でデプロイしたアプリケーションが正常に起動していないというエラーです。
Cloud Runではポート8080を使うことが前提です。なのでアプリケーションのポートを8080に設定しましたが、エラーは解消されませんでした。

解決方法

Cloud Runで詳細なログを確認してみました。

2024-09-18 19:22:56.083 JST
ArgumentError: Missing `secret_key_base` for 'production' environment, set this string with `bin/rails credentials:edit` (ArgumentError)
2024-09-18 19:22:56.083 JST
raise ArgumentError, "Missing `secret_key_base` for '#{Rails.env}' environment, set this string with `bin/rails credentials:edit`"
2024-09-18 19:22:56.083 JST

このエラーは Railsのsecret_key_base が設定されてないよと言うエラーでした。
これにより起動ができていなかったようです。

ただ「8080ポートが〜」と言うエラーがわざわざ出ていたので、勘違いしがちですがそんなことはなかったです。

おわりに

ちゃんと詳細までログをみましょうと言うお話でした。

株式会社Mambacom

Discussion