RDSでのブートストラップに問題が発生しました --- 証明書ファイルを開けませんでした

RDS 上に標準的なインストールを行っており、データベースは RDS にあります。13.2 から 15.2 にアップグレードしました。既存のコンテナは正常に動作しています。

新しいイメージをブートストラップすると、データベースのマイグレーション、アセットの事前コンパイルが行われます。

I, [2023-12-20T20:16:12.865112 #1]  INFO -- : cd /var/www/discourse & sudo -E -u discourse bundle exec rake s3:upload_assets
プラグイン名が 'discourse-linkedin-auth' ですが、プラグインディレクトリは 'discourse-plugin-linkedin-auth' という名前です
プラグイン名が 'stemaway-experience-bbcodes' ですが、プラグインディレクトリは 'experience-bbcodes' という名前です
プラグイン名が 'discourse-badge-search' ですが、プラグインディレクトリは 'stemaway-badge-search' という名前です
プラグイン名が 'points-plugin' ですが、プラグインディレクトリは 'tacks-plugin' という名前です
プラグイン名が 'discourse-group-assign-by-custom-field' ですが、プラグインディレクトリは 'ucf-group-assignment' という名前です
rake aborted!
ActiveRecord::NoDatabaseError: データベース 'discourse' が見つかりませんでした。これは config/database.yml にあるデータベース設定ファイルにあります。(ActiveRecord::NoDatabaseError)

その後、以下のようなものが表示されます。

Caused by:
PG::ConnectionBad: サーバー "172.31.x.y"、ポート 5432 への接続に失敗しました: 証明書ファイル "/root/.postgresql/postgresql.crt" を開けませんでした: 権限が拒否されました (PG::ConnectionBad)
サーバー "172.31.x.y"、ポート 5432 への接続に失敗しました: FATAL: ホスト "172.31.x.y"、ユーザー "postgres"、データベース "discourse" に対する pg_hba.conf エントリがありません。暗号化されていません
...
Pups::ExecError: cd /var/www/discourse & sudo -E -u discourse bundle exec rake s3:upload_assets はリターンコード #<Process::Status: pid 7133 exit 1> で失敗しました


マイグレーションと事前コンパイルはできるのに、アセットのアップロードができないのは(私には)意味がわかりません。
ビルド中のコンテナに入ると、ENV の認証情報を使って postgres に接続できます。

tmux から完全なログを取得しようとしています。。。まあ、バッファはそれほど大きくなく、ここには収まりません。もっと大きなバッファを作成し、別のブートストラップを実行して、完全なログをどこかに貼り付けようとします。

「いいね!」 2

判明したところによると、以下が必要です。

env:
  PGSSLCERT: /tmp/postgresql.crt

どこでこれを理解したのかは分かりませんが、ステージングサイトの yml にはありますが、本番サイトにはありません。そして、最近まで問題なく動作していました。データベースの移行は問題なく行われ、アセットの事前コンパイルを開始するまで失敗しなかったため、奇妙です。

「いいね!」 3

このトピックは、最後の返信から30日後に自動的にクローズされました。新しい返信は許可されていません。