Sto creando una nuova istanza di discourse da zero per scopi di sviluppo e vedo di nuovo questo errore di bootstrap:
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' è fallito con ritorno #<Process::Status: pid 1002 exit 1>
Posizione del fallimento: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec fallito con i parametri {"cd"=>"$home", "tag"=>"migrate", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
bootstrap fallito con codice di uscita 1
La configurazione del container è con due container per webonly e dataonly (redis) e con un database postgresql esterno. Commentare le impostazioni di maxmind non cambia nulla.
Hmmm, no, abbiamo 4 GB di RAM e molto spazio su disco (2 x 32 GB), l’ambiente generale è lo stesso dell’altra macchina Docker dove le build funzionano senza problemi.
OK, ho corretto la separazione di web_only e redis. Il messaggio di errore ora è
FAILED -------------------- Pups::ExecError: cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate' fallito con ritorno #<Process::Status: pid 981 exit 1> Posizione del fallimento: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn' exec fallito con i parametri {"cd"=>"$home", "tag"=>"migrate", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migra te'"]} bootstrap fallito con codice di uscita 1 ** FAILED TO BOOTSTRAP ** si prega di scorrere verso l'alto e cercare messaggi di errore precedenti, potrebbero essercene più di uno. ./discourse-doctor può aiutare a diagnosticare il problema. 801049b69a89d38b1ae5c299d356fc5f8dc6a8f518b1260c2dde05e0b6081556
Ma forse è un malinteso / mancanza di conoscenza da parte mia:
Il database dovrebbe essere esterno su un altro container lxc che ha un database postgresql. L’utente del database e il database esistono, ma il database è vuoto prima del primo bootstrap di web_only. Lo script crea il database stesso sul sistema remoto al primo build? O devo prima creare il container del database e poi esportare manualmente il suo schema predefinito e i dati al demone postgresql esterno?
Grazie per il diagramma. È una configurazione piuttosto sofisticata: lo faresti se avessi una buona ragione e conoscessi il territorio.
Se stai ancora vedendo quanto segue, penso che sia l’indicazione di ciò che non va. Redis non riesce ad aprire la porta su cui deve essere in ascolto.
Quindi le domande riguardano se redis dovrebbe farlo, in questo container, e se sì, dove altro sulla macchina è in esecuzione un altro redis. lsof potrebbe essere uno strumento utile qui.
Ciao @Ed_S
grazie per l’indizio sulla porta mancante. Voglio prima attendere la risposta di Falco riguardo alle mie domande sulla configurazione generale di Discourse con un database PostgreSQL esterno.
Sì, la configurazione è un po’ sofisticata rispetto allo standard con un solo container dell’app. Eseguo tutto su una macchina dedicata con Proxmox (https://proxmox.com) come ambiente di virtualizzazione su hetzner.de
Devi ancora condividere i log completi, inclusa la parte in cui la migrazione è fallita. La mia ipotesi (ed è un’ipotesi dato che non hai condiviso l’errore) è che tu stia usando il plugin AI e il tuo database non abbia il componente aggiuntivo richiesto.
Ora penso che l’approccio migliore sarebbe creare prima una configurazione standard “all in one” (app.yml). E poi fare un dump SQL dello schema iniziale e dei dati dal container in una macchina postgres esterna. @Falco cosa ne pensi?