Reconstruction de Discourse ne fonctionne pas

J’ai reçu un message d’erreur en essayant d’ajouter une publication avec un graphique intégré. Il semblait y avoir un problème de protection de fichier et il a été suggéré que j’exécute :

./launcher rebuild app

Je l’ai fait et j’ai obtenu ces erreurs :

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile' failed with return #<Process::Status: pid 515 exit 1>
Location of failure: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"assets_precompile", "cmd"=>["su discourse -c 'bundle exec rake themes:update assets:precompile'"]}
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
5c01a6b7b892f68e51e8f275b360af36d7b6f0ac8a3e22c837b0afaaef1705f4

L’erreur est un peu déroutante. Elle apparaît après environ cinq minutes. Le fait est que mes données se trouvent dans /var/discourse et non dans /var/www/discourse. Ma dernière sauvegarde date d’un mois et j’aimerais résoudre ce problème sans perdre le dernier mois. Des idées ? Est-il possible de sauvegarder la base de données sur le système qui ne reconstruira pas, puis de restaurer la base de données d’une manière ou d’une autre sur la sauvegarde ?

Il y a aussi une erreur antérieure :

warning Skipping preferred cache folder "/home/discourse/.cache/yarn" because it is not writable.
warning Selected the next writable cache folder in the list, will be "/tmp/.yarn-cache-1000".
warning Cannot find a suitable global folder. Tried these: "/usr/local, /home/discourse/.yarn"
node:fs:1336
  handleErrorFromBinding(ctx);
  ^

Error: EACCES: permission denied, mkdir '/home/discourse/.config/configstore'
You don't have access to this file.

    at Object.mkdirSync (node:fs:1336:3)
    at AsyncFunction.module.exports.sync (/var/www/discourse/app/assets/javascripts/node_modules/make-dir/index.js:114:6)
    at Configstore.set all [as all] (/var/www/discourse/app/assets/javascripts/node_modules/configstore/index.js:59:12)
    at Configstore.set (/var/www/discourse/app/assets/javascripts/node_modules/configstore/index.js:91:12)
    at clientId (/var/www/discourse/app/assets/javascripts/node_modules/ember-cli/lib/cli/index.js:55:17)
    at module.exports (/var/www/discourse/app/assets/javascripts/node_modules/ember-cli/lib/cli/index.js:105:13)
    at Object.<anonymous> (/var/www/discourse/app/assets/javascripts/node_modules/ember-cli/bin/ember:34:1)
    at Module._compile (node:internal/modules/cjs/loader:1103:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1157:10)
    at Module.load (node:internal/modules/cjs/loader:981:32) {
  errno: -13,

Il n’y a même pas de dossier /home/discourse.

Ces chemins se trouvent à l’extérieur et à l’intérieur du conteneur.

Avez-vous des plugins qui pourraient causer cela ? Pouvez-vous supprimer tous les plugins non standards et voir si cela résout le problème ?

Jay, je pense que j’ai trouvé. J’ai pu me connecter au conteneur et tous les chemins à l’intérieur du conteneur semblaient être chowned root d’une manière ou d’une autre. Je les ai tous re-chownés en discourse et il est de nouveau opérationnel. Le problème est que je ne suis pas sûr si les protections sont correctes. Cette instance Discourse fonctionne depuis des mois sans aucun changement et soudainement, cela s’est produit et je ne peux pas expliquer pourquoi. Des idées ?

Je pense avoir vu un commit concernant la suppression d’un chown, donc cela pourrait être un bug.

Mais avez-vous des plugins non standard ?

Mon Discourse est très basique, donc non. Ma meilleure supposition est que cela s’est produit après ma mise à niveau vers 2.9.0.beta4 il y a quelques jours. Je n’ai remarqué le problème que maintenant. Beta3 fonctionnait bien. Il m’a semblé qu’une partie majeure du conteneur avait été chownée à root. La plupart ne devrait-elle pas appartenir à discourse ?

1 « J'aime »

Continué sur Error trying to edit a post with an image in (NginX Proxy Manager?) - #22 by vmsman