이미지가 포함된 게시물을 수정하려는 중 오류 발생 (NginX Proxy Manager?)

2.9.0.beta4에서 게시글을 편집한 후 저장하려고 하면 오류가 발생합니다. 오류 코드는 500이며, 겉보기에는 초안을 저장할 수 없는 것으로 보입니다. 이 버전에서 이전에 파일 소유권 관련 오류가 몇 번 있었습니다. 게시글과 초안이 모두 저장되는 경로를 알려주시면 소유권과 보호 설정을 확인할 수 있을까요?

이 답변이 너무 단순한 것 같아서, 제가 오해하고 있다면 사과드립니다. 하지만 Discourse Data Explorer 플러그인을 사용 중이라면, 게시글은 posts 테이블에, 초안은 drafts 테이블에 저장됩니다.

브라우저 콘솔에 오류 메시지가 있나요? 작동하지 않는 부분에 대한 추가적인 세부 정보를 제공할 수 있을까요?

Explorer 플러그인을 사용하지 않고 있습니다. 인라인 그래픽이 포함된 문서를 편집할 때 이 문제가 발생하는 것 같습니다. 아마도 해당 그래픽이 저장된 폴더의 보호 설정이 제대로 되어 있지 않은 것일까요? 그 경로가 어디인지 아시나요?

@JammyDodger 님이 언급했듯이, Discourse 데이터의 대부분은 postgres 데이터베이스에 저장되므로, 일부 Discourse 기능에만 영향을 미치는 ‘파일 소유권’ 문제가 발생할 가능성은 낮습니다.

표준 설치 환경에서는 업로드된 파일이 /var/discourse/shared/standalone/... 아래에 저장됩니다. 해당 디렉터리는 docker 컨테이너 내부에 마운트됩니다. 그곳에 권한 문제가 있을 가능성이 있습니다 :+1:

확실히 하기 위해, 500 오류의 원인은 사이트의 오류 로그에서 확인해야 합니다. 관리자 계정으로 로그인한 후 /logs로 이동하여 최근의 빨간색 오류를 찾아보세요.

웹사이트에서 수행한 표준 설치를 하고 있습니다. 컨테이너 내부에서 /var 디렉터리를 확인해 보면 ./discourse가 없으며, ./www만 존재합니다. /var/www/discourse는 존재합니다. 그 안의 모든 파일은 discourse 사용자로 소유되어 있으며, shared나 standalone 폴더는 없습니다.

컨테이너 외부에는 /var/discourse/shared/standalone 폴더가 있습니다. Docker 설치이므로 컨테이너 외부에는 docker가 없습니다.

^^ 오류 로그에서 확인되는 것이 있나요?

/logs 폴더가 없습니다. /var/discourse/shared/standalone/log/var-log 폴더와 /var/log 폴더가 있으며, 이 두 폴더에는 모두 .gz 파일이 많이 포함되어 있습니다.

관리자로 로그인한 경우, 브라우저에서 https://{your forum}}/logs를 방문할 수 있어야 합니다.

감사합니다! 그 사실을 몰랐습니다. 게시물을 편집하다가 500 오류가 발생해서 로그를 확인해 보았더니:


저장 버튼을 클릭하는 바로 그 순간 오류가 발생합니다.

‘info’ 탭과 ‘backtrace’ 탭 전체를 복사/붙여넣기해 주시겠어요? (백트레이스에서 가장 유용한 부분은 상단인데, 해당 스크린샷에서는 잘려 있습니다)

기존 게시물을 편집하여 500 오류를 트리거한 직후의 정보 탭입니다.

Hi @vmsman :slightly_smiling_face: 진행은 어떻게 되고 있나요?

가능하다면, 중요한 부분들을 확인할 수 있도록 'info’와 ‘backtrace’ 전체를 코드 블록으로 복사하여 여기 Meta에 붙여넣어 주시겠어요?

예시로 제 테스트 사이트에서 발생한 다른 오류를 보여드릴게요:

Message (35 copies reported)

Failed to warm up pretty text: JavaScript was terminated (either by timeout or explicitly)

Backtrace

lib/discourse.rb:772:in `rescue in after_fork'
lib/discourse.rb:768:in `after_fork'
/var/www/discourse/lib/demon/base.rb:217:in `establish_app'
/var/www/discourse/lib/demon/base.rb:147:in `block in run'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.4.7/lib/active_support/fork_tracker.rb:10:in `block in fork'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.4.7/lib/active_support/fork_tracker.rb:8:in `fork'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.4.7/lib/active_support/fork_tracker.rb:8:in `fork'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.4.7/lib/active_support/fork_tracker.rb:27:in `fork'
/var/www/discourse/lib/demon/base.rb:144:in `run'
/var/www/discourse/lib/demon/base.rb:140:in `start'

중요한 것을 발견했습니다. 기존 게시물을 편집하면 초안이 오프라인 상태임을 나타내는 빨간색 메시지가 표시됩니다.

이것이 필요하신 내용일 것입니다. 500 오류는 #<Net::OpenTimeout: execution expired>를 생성하는 것으로 보입니다.

/usr/local/lib/ruby/2.7.0/net/http.rb:960:in `initialize'
/usr/local/lib/ruby/2.7.0/net/http.rb:960:in `open'
/usr/local/lib/ruby/2.7.0/net/http.rb:960:in `block in connect'
/usr/local/lib/ruby/2.7.0/timeout.rb:105:in `timeout'
/usr/local/lib/ruby/2.7.0/net/http.rb:958:in `connect'
/usr/local/lib/ruby/2.7.0/net/http.rb:943:in `do_start'
/usr/local/lib/ruby/2.7.0/net/http.rb:932:in `start'
/usr/local/lib/ruby/2.7.0/net/http.rb:606:in `start'
/var/www/discourse/lib/final_destination.rb:515:in `safe_session'
/var/www/discourse/lib/final_destination.rb:455:in `safe_get'
/var/www/discourse/lib/final_destination.rb:147:in `get'
/var/www/discourse/lib/retrieve_title.rb:63:in `fetch_title'
/var/www/discourse/lib/retrieve_title.rb:7:in `crawl'
/var/www/discourse/app/jobs/regular/crawl_topic_link.rb:39:in `execute'
/var/www/discourse/app/jobs/base.rb:232:in `block (2 levels) in perform'
rails_multisite-4.0.1/lib/rails_multisite/connection_management.rb:80:in `with_connection'
/var/www/discourse/app/jobs/base.rb:221:in `block in perform'
/var/www/discourse/app/jobs/base.rb:217:in `each'
/var/www/discourse/app/jobs/base.rb:217:in `perform'
sidekiq-6.4.1/lib/sidekiq/processor.rb:196:in `execute_job'
sidekiq-6.4.1/lib/sidekiq/processor.rb:164:in `block (2 levels) in process'
sidekiq-6.4.1/lib/sidekiq/middleware/chain.rb:138:in `block in invoke'
/var/www/discourse/lib/sidekiq/pausable.rb:138:in `call'
sidekiq-6.4.1/lib/sidekiq/middleware/chain.rb:140:in `block in invoke'
sidekiq-6.4.1/lib/sidekiq/middleware/chain.rb:143:in `invoke'
sidekiq-6.4.1/lib/sidekiq/processor.rb:163:in `block in process'
sidekiq-6.4.1/lib/sidekiq/processor.rb:136:in `block (6 levels) in dispatch'
sidekiq-6.4.1/lib/sidekiq/job_retry.rb:114:in `local'
sidekiq-6.4.1/lib/sidekiq/processor.rb:135:in `block (5 levels) in dispatch'
sidekiq-6.4.1/lib/sidekiq.rb:40:in `block in <module:Sidekiq>'
sidekiq-6.4.1/lib/sidekiq/processor.rb:131:in `block (4 levels) in dispatch'
sidekiq-6.4.1/lib/sidekiq/processor.rb:257:in `stats'
sidekiq-6.4.1/lib/sidekiq/processor.rb:126:in `block (3 levels) in dispatch'
sidekiq-6.4.1/lib/sidekiq/job_logger.rb:13:in `call'
sidekiq-6.4.1/lib/sidekiq/processor.rb:125:in `block (2 levels) in dispatch'
sidekiq-6.4.1/lib/sidekiq/job_retry.rb:81:in `global'
sidekiq-6.4.1/lib/sidekiq/processor.rb:124:in `block in dispatch'
sidekiq-6.4.1/lib/sidekiq/job_logger.rb:39:in `prepare'
sidekiq-6.4.1/lib/sidekiq/processor.rb:123:in `dispatch'
sidekiq-6.4.1/lib/sidekiq/processor.rb:162:in `process'
sidekiq-6.4.1/lib/sidekiq/processor.rb:78:in `process_one'
sidekiq-6.4.1/lib/sidekiq/processor.rb:68:in `run'
sidekiq-6.4.1/lib/sidekiq/util.rb:56:in `watchdog'
sidekiq-6.4.1/lib/sidekiq/util.rb:65:in `block in safe_thread'

또한 ActionView::Template::Error (undefined method `stylesheet_path’ for #Stylesheet::Manager::Builder:0x00007f27b6c2f850 Did you mean? stylesheet_relpath stylesheet_fullpath) lib/stylesh

lib/stylesheet/manager.rb:246:in `block in stylesheet_details'
lib/stylesheet/manager.rb:215:in `synchronize'
lib/stylesheet/manager.rb:215:in `stylesheet_details'
lib/stylesheet/manager.rb:192:in `stylesheet_link_tag'
app/helpers/application_helper.rb:565:in `discourse_stylesheet_link_tag'
app/views/layouts/crawler.html.erb:11
actionview (6.1.4.1) lib/action_view/base.rb:247:in `public_send'
actionview (6.1.4.1) lib/action_view/base.rb:247:in `_run'
actionview (6.1.4.1) lib/action_view/template.rb:154:in `block in render'
activesupport (6.1.4.1) lib/active_support/notifications.rb:205:in `instrument'
actionview (6.1.4.1) lib/action_view/template.rb:345:in `instrument_render_template'
actionview (6.1.4.1) lib/action_view/template.rb:152:in `render'
rack-mini-profiler (2.3.3) lib/mini_profiler/profiling_methods.rb:85:in `block in profile_method'
actionview (6.1.4.1) lib/action_view/renderer/template_renderer.rb:72:in `block in render_with_layout'
activesupport (6.1.4.1) lib/active_support/notifications.rb:203:in `block in instrument'
activesupport (6.1.4.1) lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport (6.1.4.1) lib/active_support/notifications.rb:203:in `instrument'
actionview (6.1.4.1) lib/action_view/renderer/template_renderer.rb:70:in `render_with_layout'
actionview (6.1.4.1) lib/action_view/renderer/template_renderer.rb:55:in `render_template'
actionview (6.1.4.1) lib/action_view/renderer/template_renderer.rb:11:in `render'
actionview (6.1.4.1) lib/action_view/renderer/renderer.rb:61:in `render_template_to_object'
actionview (6.1.4.1) lib/action_view/renderer/renderer.rb:29:in `render_to_object'
actionview (6.1.4.1) lib/action_view/rendering.rb:117:in `block in _render_template'
actionview (6.1.4.1) lib/action_view/base.rb:273:in `in_rendering_context'
actionview (6.1.4.1) lib/action_view/rendering.rb:116:in `_render_template'
actionpack (6.1.4.1) lib/action_controller/metal/streaming.rb:218:in `_render_template'
actionview (6.1.4.1) lib/action_view/rendering.rb:103:in `render_to_body'
actionpack (6.1.4.1) lib/action_controller/metal/rendering.rb:52:in `render_to_body'
actionpack (6.1.4.1) lib/action_controller/metal/renderers.rb:142:in `render_to_body'
actionpack (6.1.4.1) lib/abstract_controller/rendering.rb:25:in `render'
actionpack (6.1.4.1) lib/action_controller/metal/rendering.rb:36:in `render'
actionpack (6.1.4.1) lib/action_controller/metal/instrumentation.rb:46:in `block (2 levels) in render'
/usr/local/lib/ruby/2.7.0/benchmark.rb:308:in `realtime'
activesupport (6.1.4.1) lib/active_support/core_ext/benchmark.rb:14:in `ms'
actionpack (6.1.4.1) lib/action_controller/metal/instrumentation.rb:46:in `block in render'
actionpack (6.1.4.1) lib/action_controller/metal/instrumentation.rb:86:in `cleanup_view_runtime'
activerecord (6.1.4.1) lib/active_record/railties/controller_runtime.rb:34:in `cleanup_view_runtime'
actionpack (6.1.4.1) lib/action_controller/metal/instrumentation.rb:45:in `render'
lib/topic_list_responder.rb:13:in `block (2 levels) in respond_with_list'
actionpack (6.1.4.1) lib/action_controller/metal/mime_responds.rb:214:in `respond_to'
lib/topic_list_responder.rb:9:in `respond_with_list'
app/controllers/list_controller.rb:103:in `block (2 levels) in <class:ListController>'
actionpack (6.1.4.1) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack (6.1.4.1) lib/abstract_controller/base.rb:228:in `process_action'
actionpack (6.1.4.1) lib/action_controller/metal/rendering.rb:30:in `process_action'
actionpack (6.1.4.1) lib/abstract_controller/callbacks.rb:42:in `block in process_action'
activesupport (6.1.4.1) lib/active_support/callbacks.rb:117:in `block in run_callbacks'
app/controllers/application_controller.rb:387:in `block in with_resolved_locale'
i18n (1.9.1) lib/i18n.rb:328:in `with_locale'
app/controllers/application_controller.rb:387:in `with_resolved_locale'
activesupport (6.1.4.1) lib/active_support/callbacks.rb:126:in `block in run_callbacks'
activesupport (6.1.4.1) lib/active_support/callbacks.rb:137:in `run_callbacks'
actionpack (6.1.4.1) lib/abstract_controller/callbacks.rb:41:in `process_action'
actionpack (6.1.4.1) lib/action_controller/metal/rescue.rb:22:in `process_action'
actionpack (6.1.4.1) lib/action_controller/metal/instrumentation.rb:34:in `block in process_action'
activesupport (6.1.4.1) lib/active_support/notifications.rb:203:in `block in instrument'
activesupport (6.1.4.1) lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport (6.1.4.1) lib/active_support/notifications.rb:203:in `instrument'
actionpack (6.1.4.1) lib/action_controller/metal/instrumentation.rb:33:in `process_action'
actionpack (6.1.4.1) lib/action_controller/metal/params_wrapper.rb:249:in `process_action'
activerecord (6.1.4.1) lib/active_record/railties/controller_runtime.rb:27:in `process_action'
actionpack (6.1.4.1) lib/abstract_controller/base.rb:165:in `process'
actionview (6.1.4.1) lib/action_view/rendering.rb:39:in `process'
rack-mini-profiler (2.3.3) lib/mini_profiler/profiling_methods.rb:85:in `block in profile_method'
actionpack (6.1.4.1) lib/action_controller/metal.rb:190:in `dispatch'
actionpack (6.1.4.1) lib/action_controller/metal.rb:254:in `dispatch'
actionpack (6.1.4.1) lib/action_dispatch/routing/route_set.rb:50:in `dispatch'
actionpack (6.1.4.1) lib/action_dispatch/routing/route_set.rb:33:in `serve'
actionpack (6.1.4.1) lib/action_dispatch/routing/mapper.rb:19:in `block in <class:Constraints>'
actionpack (6.1.4.1) lib/action_dispatch/routing/mapper.rb:49:in `serve'
actionpack (6.1.4.1) lib/action_dispatch/journey/router.rb:50:in `block in serve'
actionpack (6.1.4.1) lib/action_dispatch/journey/router.rb:32:in `each'
actionpack (6.1.4.1) lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack (6.1.4.1) lib/action_dispatch/routing/route_set.rb:842:in `call'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
rack (2.2.3) lib/rack/tempfile_reaper.rb:15:in `call'
rack (2.2.3) lib/rack/conditional_get.rb:27:in `call'
rack (2.2.3) lib/rack/head.rb:12:in `call'
actionpack (6.1.4.1) lib/action_dispatch/http/permissions_policy.rb:22:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:354:in `call'
rack (2.2.3) lib/rack/session/abstract/id.rb:266:in `context'
rack (2.2.3) lib/rack/session/abstract/id.rb:260:in `call'
actionpack (6.1.4.1) lib/action_dispatch/middleware/cookies.rb:689:in `call'
actionpack (6.1.4.1) lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
activesupport (6.1.4.1) lib/active_support/callbacks.rb:98:in `run_callbacks'
actionpack (6.1.4.1) lib/action_dispatch/middleware/callbacks.rb:26:in `call'
actionpack (6.1.4.1) lib/action_dispatch/middleware/actionable_exceptions.rb:18:in `call'
actionpack (6.1.4.1) lib/action_dispatch/middleware/debug_exceptions.rb:29:in `call'
actionpack (6.1.4.1) lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
logster (2.10.1) lib/logster/middleware/reporter.rb:43:in `call'
railties (6.1.4.1) lib/rails/rack/logger.rb:37:in `call_app'
railties (6.1.4.1) lib/rails/rack/logger.rb:28:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
actionpack (6.1.4.1) lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
actionpack (6.1.4.1) lib/action_dispatch/middleware/request_id.rb:26:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
rack (2.2.3) lib/rack/method_override.rb:24:in `call'
actionpack (6.1.4.1) lib/action_dispatch/middleware/executor.rb:14:in `call'
rack (2.2.3) lib/rack/sendfile.rb:110:in `call'
actionpack (6.1.4.1) lib/action_dispatch/middleware/host_authorization.rb:92:in `call'
rack-mini-profiler (2.3.3) lib/mini_profiler/profiler.rb:249:in `call'
message_bus (4.0.0) lib/message_bus/rack/middleware.rb:60:in `call'
lib/middleware/request_tracker.rb:198:in `call'
railties (6.1.4.1) lib/rails/engine.rb:539:in `call'
railties (6.1.4.1) lib/rails/railtie.rb:207:in `public_send'
railties (6.1.4.1) lib/rails/railtie.rb:207:in `method_missing'
rack (2.2.3) lib/rack/urlmap.rb:74:in `block in call'
rack (2.2.3) lib/rack/urlmap.rb:58:in `each'
rack (2.2.3) lib/rack/urlmap.rb:58:in `call'
unicorn (6.1.0) lib/unicorn/http_server.rb:634:in `process_client'
unicorn (6.1.0) lib/unicorn/http_server.rb:739:in `worker_loop'
unicorn (6.1.0) lib/unicorn/http_server.rb:547:in `spawn_missing'

알고 보니 제가 알아차리지 못했지만, 지금은 어떤 이미지도 업로드할 수 없는 것 같습니다. 새 게시글에 이미지를 업로드하려는 모든 시도는 "죄송합니다. 파일 업로드 중 오류가 발생했습니다. 다시 시도해 주세요."라는 오류 메시지로 이어집니다. 또한, 기존 게시글을 편집하고 저장하려고 하면 500 오류가 발생하며, 텍스트가 아닌 게시글을 새로 만들 수도 없습니다. 즉, 텍스트만 있는 게시글은 생성과 삭제가 모두 가능합니다. 따라서 문제는 새 게시글이든 기존 게시글이든 그래픽이 포함된 모든 게시글에서 발생하는 어떤 유형의 오류로 좁혀진 것 같습니다. 이 테스트에서는 제가 관리자 사용자입니다.

결국 너무 답답해서 재빌드를 시도해 보기로 했습니다. 처음 확인되는 오류는 다음과 같습니다:

I, [2022-04-29T00:19:51.497560 #1]  INFO -- : > cd /var/www/discourse && [ ! -d 'node_modules' ] || su discourse -c 'yarn install --production && yarn cache clean'
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"
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".

이 오류들은 흥미롭습니다. /home/discourse의 권한을 777로 설정해 두었는데도 여전히 이런 오류가 발생하기 때문이죠.
그 외에는 마지막까지 다른 오류가 없었습니다:

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile' failed with return #<Process::Status: pid 716 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.
451d4b5ee8d036df6ab8f7717019d94b66d10d261c3d1201547dad7a1722a544
==================== END REBUILD LOG ====================
Failed to rebuild app.

어쨌든, ./discourse-doctor를 실행한 후에는 그래픽이 포함된 게시글을 작성하고 편집할 수 있었습니다. 하지만 재부팅을 하자마자 다시 같은 오류가 발생했습니다.

기본적인 부분부터 살펴보는 것이 좋을 것 같습니다:

  • 표준 설치인가요?
  • 플러그인이나 커스텀 테마를 설치해 두셨나요?
  • 재빌드 시 출력 결과에 어떤 오류가 표시됩니까? (예: 끝부분에서 더 구체적인 오류를 확인하려면 위로 스크롤하라고 안내할 때, 어떤 오류를 보시나요? 전체 내용을 코드 블록으로 여기에 복사해 주시면 확인해 볼 수 있습니다.)
  • discourse-doctor가 어떤 변경 사항을 만들거나 제안했으며, 인스턴스를 '재시작’했을 때 해당 변경 사항이 더 이상 작동하지 않도록 한 것은 무엇이었나요?

이것은 표준 설치 환경입니다. 약 2년 정도 운영해 왔습니다.
플러그인이나 커스텀 테마를 사용하지 않습니다.
리빌드 과정에서 발생하는 모든 오류를 붙여넣었습니다.
가장 먼저 발생하는 오류는 다음과 같습니다:

I, [2022-04-29T00:19:51.497560 #1]  INFO -- : > cd /var/www/discourse && [ ! -d 'node_modules' ] || su discourse -c 'yarn install --production && yarn cache clean'
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"
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".

Discourse-doctor는 변경 사항을 제안하지 않으며 정상적으로 실행되는 것으로 보입니다.

500 오류가 언제부터 시작되었는지 정확히 알지 못합니다. 이는 그래픽이 포함된 초안이나 게시물을 저장할 수 없게 된 시점과 같습니다. 직접 확인해 보려면 포럼인 https://discussion.scottibyte.com 을 방문하세요. 위 게시물에 리빌드와 discourse-doctor 실행 중에 본 모든 오류를 빠짐없이 올려 두었습니다.

다음 명령을 실행한 후:

./discourse-setup rebuild

위에서 볼 수 있듯이 인스턴스가 시작되지 않는다는 것을 말씀드릴 수 있습니다. 만약 다음을 실행하면:

./discourse-doctor

완료 직후 인스턴스가 어떻게든 최소한 시작은 되지만, 동일한 오류가 발생합니다.

이 제품은 좋지만, 몇 개월마다 발생하여 수정하기 어려운 랜덤한 오류로 가득한 것 같습니다. 제 설치 환경은 어떤 수정도 없는 완전히 표준적인 상태인데도 불구하고 갑자기 깨져 버립니다.

디스크가 가득 차 있나요? 그래도 경고 메시지는 뜨겠지요.

나중에 제대로 다시 온라인으로 돌아오겠지만, 간단히 확인하고 싶은데, 이건 오타인가요?

명령어는 다음과 같아야 합니다:

./launcher rebuild app

아니요, 오타가 아닙니다. 제가 잘못된 명령어를 사용했던 것 같습니다. 지금 바로 시도해 보고 있습니다.