[멀티사이트 설치] 재빌드 중 pnpm 권한 오류

안녕하세요,

web_only 컨테이너를 업그레이드/재빌드할 수 없습니다. multisite migrate를 호출할 때 재빌드가 실패하는 것 같습니다. 새 설치(데이터 없이 data.ymlweb_only.yml 파일만 있는 상태)에서도 동일한 오류가 발생합니다. (데이터 컨테이너의 재빌드는 오류 없이 완료됩니다.

제가 무언가를 잘못하고 있는 건지, 아니면 최근 업그레이드에서 도입된 버그인 건지 궁금합니다.

대신 이 오류를 우회할 수 있는 방법이 있을까요? 스크립트의 내부 구조는 잘 모르지만, 스크립트가 먼저 /root/ 디렉터리가 쓰기 불가하다고 표시한 후 임시 폴더를 생성하고, /root/ 디렉터리에서 mkdir이 실패하면서 크래시 나는 것처럼 보입니다.

감사합니다!

> 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 최근에 진행한 pnpm 업그레이드와 관련이 있을까요? :thinking:

이것은 sudo -H -E -u discourse…여야 합니다.

(set_home을 기본값으로 설정하는 것이 좋을 것 같습니다)

25분 만에 정확히 맞는 답변을 받았다는 게 정말 믿기지가 않습니다 :tada:!

정말 감사합니다. 재구성이 성공적으로 완료되었습니다!

실제로 제 web_only.yml 파일에는 잘못된 명령어가 포함되어 있었습니다. 어떤 튜토리얼을 따라 했는지 기억이 나는데, 그 튜토리얼에는 이제 더 이상 정확하지 않은 명령어가 여전히 남아 있습니다. 그 게시글들을 어떻게 수정해야 할지 모르겠네요.

네, 그럴 수 있어요. v10을 원했는데 9.x 버전이어서 업그레이드가 실패했을 때 제가 곤란한 상황에 처했거든요. 그래서 pnpm을 수동으로 업데이트했어요.

그리고 네, 제 경우엔 멀티사이트가 아니라서 OP와 문제가 달라서 오프토픽인 거 맞아요.