Reconstrucción de Discourse no funciona

Tuve un mensaje de error al intentar agregar una publicación con un gráfico incrustado. Parecía haber un problema de protección de archivos y se sugirió que realizara:

./launcher rebuild app

Lo hice y obtuve estos errores:

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

El error es un poco desconcertante. Esto aparece después de unos cinco minutos. El caso es que mis datos están en /var/discourse y no en /var/www/discourse. Mi última copia de seguridad fue hace un mes y me gustaría solucionarlo y no perder el último mes. ¿Alguna idea? ¿Es posible hacer una copia de seguridad de la base de datos en el sistema que no se reconstruirá y luego restaurar la base de datos de alguna manera en la copia de seguridad?

Hay un error anterior también:

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,

Ni siquiera hay una carpeta /home/discourse.

Esas rutas están fuera y dentro del contenedor.

¿Tienes algún plugin que pueda estar causando esto? ¿Puedes eliminar algún plugin no estándar y configurarlo para que se solucione?

Jay, creo que lo descubrí. Pude conectarme al contenedor y todas las rutas dentro del contenedor parecían estar marcadas como propiedad de root de alguna manera. Las cambié de nuevo a discourse y volvió a funcionar. El problema es que no estoy seguro de si las protecciones son correctas. Esta instancia de Discourse ha estado funcionando durante meses sin ningún cambio y de repente sucedió esto y no puedo explicar por qué. ¿Ideas?

Creo que vi un commit sobre la eliminación de un chown, así que podría ser un error.

Pero, ¿tienes algún plugin no estándar?

Mi Discourse es muy básico, así que no. Mi mejor suposición es que esto ocurrió después de que actualicé a 2.9.0.beta4, lo cual fue hace unos días. No noté el problema hasta ahora. Beta3 estaba funcionando bien. Me pareció que quizás una parte importante del contenedor había sido chowned a root. ¿No debería la mayor parte ser propiedad de discourse?

1 me gusta

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