Problemi di bootstrapping con RDS --- impossibile aprire il certificate file

Ho un’installazione piuttosto standard con database su RDS. Era su 13.2 e l’ho appena aggiornato a 15.2. Il container esistente funziona perfettamente.

Quando avvio una nuova immagine, migra il database, precompila gli asset

e poi

I, [2023-12-20T20:16:12.865112 #1]  INFO -- : cd /var/www/discourse & sudo -E -u discourse bundle exec rake s3:upload_assets
Plugin name is 'discourse-linkedin-auth', but plugin directory is named 'discourse-plugin-linkedin-auth'
Plugin name is 'stemaway-experience-bbcodes', but plugin directory is named 'experience-bbcodes'
Plugin name is 'discourse-badge-search', but plugin directory is named 'stemaway-badge-search'
Plugin name is 'points-plugin', but plugin directory is named 'tacks-plugin'
Plugin name is 'discourse-group-assign-by-custom-field', but plugin directory is named 'ucf-group-assignment'
rake aborted!
ActiveRecord::NoDatabaseError: We could not find your database: discourse. Which can be found in the database configuration file located at config/database.yml. (ActiveRecord::NoDatabaseError)

e poi più tardi cose come questa:

Caused by:
PG::ConnectionBad: connection to server at "172.31.x.y", port 5432 failed: could not open certificate file "/root/.postgresql/postgresql.crt": Permission denied (PG::ConnectionBad)
connection to server at "172.31.x.y", port 5432 failed: FATAL:  no pg_hba.conf entry for host "172.31.x.y", user "postgres", database "discourse", no encryption
...Pups::ExecError: cd /var/www/discourse & sudo -E -u discourse bundle exec rake s3:upload_assets failed with return #<Process::Status: pid 7133 exit 1>

Non ha senso (per me) che possa migrare e precompilare ma non caricare gli asset.
Se entro nel container mentre sta costruendo, posso connettermi a postgres usando le credenziali nell’ENV.

Lavorerò per ottenere il log completo da tmux. . . beh, il buffer non era molto grande e non ci sta qui. Proverò a creare un buffer più grande, eseguire un altro bootstrap e mettere il log completo da qualche parte.

2 Mi Piace

A quanto pare, è necessario

env:
  PGSSLCERT: /tmp/postgresql.crt

Non so dove l’abbia scoperto, ma è nello yml per il sito di staging, ma non per quello di produzione. E ha funzionato benissimo fino a poco tempo fa. È bizzarro, perché il database è stato migrato senza problemi e non è fallito fino a quando non ha iniziato a provare a precompilare gli asset.

3 Mi Piace

Questo argomento è stato chiuso automaticamente 30 giorni dopo l’ultima risposta. Non sono più consentite nuove risposte.