[instalação multisite] erro de permissão pnpn durante a reconstrução

Olá,

Não consigo atualizar/reconstruir meu contêiner web_only. A reconstrução parece falhar ao chamar multisite migrate. Uma instalação nova (sem dados, apenas meus arquivos data.yml e web_only.yml) produz o mesmo erro (a reconstrução do contêiner de dados é concluída sem erros).

Estou fazendo algo errado ou isso pode ser um bug introduzido em uma atualização recente?

Alternativamente, como posso contornar esse erro? Eu não conheço os detalhes internos do script, mas o script primeiro diz que /root/ não é gravável, cria uma pasta temporária e depois parece travar porque mkdir falha no diretório /root/.

Muitíssimo obrigado!

=> Seeding theme and color schemes
I, [2026-01-16T17:32:37.738763 #1]  INFO -- : => cd /var/www/discourse && sudo -E -u discourse bundle exec rake multisite:migrate
`/root` is not writable.
Bundler will use `/tmp/bundler20260116-787-ovvxnu787' as your home directory temporarily.
rake aborted!
Discourse::Utils::CommandError: pnpm -C=frontend/asset-processor node build.js (Discourse::Utils::CommandError)
 WARN  Issue while reading "/root/.npmrc". EACCES: permission denied, open '/root/.npmrc'
 WARN  Issue while reading "/root/.config/pnpm/rc". EACCES: permission denied, open '/root/.config/pnpm/rc'
 ERROR  EACCES: permission denied, mkdir '/root/.local/share/pnpm/.tools/pnpm/10.28.0_tmp_901'
For help, run: pnpm help run
/var/www/discourse/lib/discourse.rb:171:in `execute_command'
/var/www/discourse/lib/discourse.rb:137:in `exec'
/var/www/discourse/lib/discourse.rb:32:in `execute_command'
/var/www/discourse/lib/asset_processor.rb:27:in `build_asset_processor'
/var/www/discourse/lib/asset_processor.rb:31:in `build_production_asset_processor'
/var/www/discourse/lib/tasks/assets.rake:155:in `block in <main>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.1/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Tasks: TOP => multisite:migrate => assets:precompile:asset_processor
(See full trace by running task with --trace)


FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && sudo -E -u discourse bundle exec rake multisite:migrate failed with return #<Process::Status: pid 785 exit 1>
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.4.0/lib/pups/exec_command.rb:138:in `spawn'
exec failed with the params "cd /var/www/discourse && sudo -E -u discourse bundle exec rake multisite:migrate"
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.

@david / @cvx isso pode estar relacionado ao pnpm upgrade que fizemos recentemente? :thinking:

Isto deveria ser sudo -H -E -u discourse…

(nós provavelmente deveríamos tornar set_home o padrão)

2 curtidas

É inacreditável que eu tenha recebido a resposta exata depois de… 25min :tada:!

Muitíssimo obrigado, a reconstrução foi concluída com sucesso!

De fato, meu web_only.yml continha o comando incorreto. Lembro-me de ter seguido um destes tutoriais: (que ainda contêm o comando agora incorreto; não sei como editar essas postagens).

2 curtidas

Sim, poderia, porque tive problemas quando a atualização falhou ao tentar a v10 e eu tinha a 9.alguma coisa. Então, atualizei o pnmp manualmente.

E sim, estou fora do tópico porque o meu não é multissite e o OP teve um problema diferente.