Dificuldade no bootstrapping com RDS --- impossível abrir arquivo de certificado

Tenho uma instalação bastante padrão com banco de dados no RDS. Estava na versão 13.2 e acabei de atualizá-la para a 15.2. O contêiner existente está funcionando perfeitamente.

Quando inicializo uma nova imagem, ela migra o banco de dados, pré-compila os ativos

e então

                                                                                                                                                                            
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. (ActiveRecor
d::NoDatabaseError)                                                                                                                                                          
                           

e depois coisas como esta:

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::Connec
tionBad)                                                                                                                                                                     
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>                      
                                                                                                                                                                     

Não faz sentido (para mim) que ele consiga migrar e pré-compilar, mas não fazer upload dos ativos.
Se eu entrar no contêiner enquanto ele está construindo, consigo me conectar ao postgres usando as credenciais no ENV.

Vou trabalhar para obter o log completo do tmux. . . bem, o buffer não era muito grande e não caberá aqui. Tentarei fazer um buffer maior, executar outro bootstrap e colocar o log completo em algum lugar.

2 curtidas

Acontece que você precisa de

env:
  PGSSLCERT: /tmp/postgresql.crt

Não sei onde descobri isso, mas está no yml do site de staging, mas não no de produção. E funcionou bem até recentemente. É bizarro, porque o banco de dados migrou bem e não falhou até começar a tentar pré-compilar os assets.

3 curtidas

Este tópico foi automaticamente fechado 30 dias após a última resposta. Novas respostas não são mais permitidas.