Discourse Docker Manager

:discourse2: Summary Provides basic monitoring and update facilities to Discourse instances hosted using our Docker template: GitHub - discourse/discourse_docker: A Docker image for Discourse · GitHub
:hammer_and_wrench: Repository Link GitHub - discourse/docker_manager: Plugin for use with discourse docker image · GitHub
:open_book: Install Guide This plugin is included by default in all standard installs

Last edited by @JammyDodger 2024-06-03T21:53:45Z

Check documentPerform check on document:
17개의 좋아요

여기서 크로스링크를 걸어 추가 가시성을 높이고자 합니다: :partying_face:

4개의 좋아요

ERR_PNPM_RECURSIVE_EXEC_FIRST_FAIL 명령이 SIGKILL(강제 종료)로 종료되었습니다: ember build -prod Docker Manager: 업그레이드 실패

각 업데이트 시도 후…

1개의 좋아요

전체 로그를 게시해 주시겠어요? 감사합니다!

1개의 좋아요

스왑이 없는 상태에서 이 문제가 발생했다고 생각하며, 스왑을 추가하여 해결했습니다.

수정: 이는 제 제안을 뒷받침합니다:

2개의 좋아요

제 머신에는 4GB의 유휴 RAM이 있지만 시도해볼 생각입니다 :smiley: 만약 정말로 너무 오래 걸린다면, Cloudflare 때문일 수 있을까요?

다른 서버를 업데이트했고, 이 에러가 다시 발생하는지 지켜보겠습니다. 로그 일부를 올릴게요.

그리고 로그의 일부…

== 20250313045010 AddIndexToUsersIpAddress: migrating =========================
-- remove_index(:users, :ip_address, {:algorithm=>:concurrently, :name=>"idx_users_ip_address", :if_exists=>true})
   -> 0.0310s
-- add_index(:users, :ip_address, {:algorithm=>:concurrently, :name=>"idx_users_ip_address"})
   -> 0.0161s
== 20250313045010 AddIndexToUsersIpAddress: migrated (0.0492s) ================

Seeding default
*** Bundling assets. This will take a while *** 
$ bundle exec rake themes:update assets:precompile
Updating themes with concurrency: 10
Node.js heap_size_limit (2010.75) is less than 2048MB. Setting --max-old-space-size=2048 and CHEAP_SOURCE_MAPS=1
Building
Environment: production
The setting 'staticAddonTrees' will default to true in the next version of Embroider and can't be turned off. To prepare for this you should set 'staticAddonTrees: true' in your Embroider config.
The setting 'staticAddonTestSupportTrees' will default to true in the next version of Embroider and can't be turned off. To prepare for this you should set 'staticAddonTestSupportTrees: true' in your Embroider config.
building...
...[ConfigLoader]
...[Babel: discourse-widget-hbs > applyPatches]
...[Babel: @embroider/macros > applyPatches]
...[Babel: ember-tracked-storage-polyfill > applyPatches]
...[Babel: pretty-text > applyPatches]
...[Babel: @ember/legacy-built-in-components > applyPatches]
...[Babel: ember-source > applyPatches]
[BABEL] Note: The code generator has deoptimised the styling of /var/www/discourse/app/assets/javascripts/discourse/ember/ember-template-compiler.js as it exceeds the max of 500KB.
[BABEL] Note: The code generator has deoptimised the styling of /var/www/discourse/app/assets/javascripts/discourse/ember/ember.js as it exceeds the max of 500KB.
...[Babel: ember-source > applyPatches]
...[Babel: @glimmer/component > applyPatches]
...[Babel: @ember/render-modifiers > applyPatches]
...[Babel: @ember/test-waiters > applyPatches]
...[Babel: dialog-holder > applyPatches]
...[Babel: ember-this-fallback > applyPatches]
...[Babel: ember-buffered-proxy > applyPatches]
...[Babel: ember-cache-primitive-polyfill > applyPatches]
...[Babel: float-kit > applyPatches]
...[Babel: select-kit > applyPatches]
...[@embroider/compat/app]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
undefined
 ERR_PNPM_RECURSIVE_EXEC_FIRST_FAIL  Command was killed with SIGKILL (Forced termination): ember build -prod
Docker Manager: FAILED TO UPGRADE
#<RuntimeError: RuntimeError>
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:211:in `run'
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:112:in `upgrade'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:19:in `block in <main>'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:6:in `fork'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:6:in `<main>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/commands/runner/runner_command.rb:44:in `load'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/commands/runner/runner_command.rb:44:in `block in perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/execution_wrapper.rb:91:in `wrap'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/commands/runner/runner_command.rb:70:in `conditional_executor'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/commands/runner/runner_command.rb:43:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/thor-1.3.2/lib/thor/command.rb:28:in `run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/thor-1.3.2/lib/thor/invocation.rb:127:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/command/base.rb:178:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/thor-1.3.2/lib/thor.rb:538:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/command/base.rb:73:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/command.rb:71:in `block in invoke'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/command.rb:149:in `with_argv'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/command.rb:69:in `invoke'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/commands.rb:18:in `<main>'
/usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in `require'
/usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in `block (2 levels) in replace_require'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.18.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
bin/rails:18:in `<main>'
Spinning up 7 Unicorn worker(s) that were stopped initially

Ubuntu 버전 때문에 이 에러가 발생하는 것이 가능할까요?

문제는 서버에 있습니다. 제 세 번째 서버에서는 문제없이 작동했지만, 다른 두 서버는 4GB의 RAM이 있다고 표시되지만, 실제로는 그 정도 용량이 없는 것 같습니다…

제 이해가 맞다면, 자체 호스팅 인스턴스에서 Docker Manager를 통해 플러그인을 업데이트하는 것은 꽤 유용해 보입니다.

1개의 좋아요

이 플러그인을 설치했는데, 첫 번째 게시글에 나와 있는 플러그인 탭으로 보기를 어떻게 접근하나요? 이게 업데이트 탭인가요? ‘업데이트’ 탭에 플러그인이 목록에 표시되어 있어서 올바르게 설치한 것 같습니다.

업데이트 탭은 이전과 다르게 보여야 하나요?

아니면 이미 가지고 있던 것을 설치해서 조금 멍청하게 굴고 있는 걸까요? 이걸 설치하면 플러그인 설치가 더 쉬울 줄 알았는데, 결국 SSH를 통해 해야 하는 것 같습니다.

올레, 상단에 "이 플러그인은 모든 표준 설치에 기본적으로 포함되어 있습니다"라고 언급되어 있네요 – 그래서 이미 가지고 있던 것을 설치한 것 같습니다.

위 일러스트는 구버전의 Discourse에서 가져온 것이며, 관리자 영역 및 내비게이션은 이제 조금 다르게 보입니다:

감사합니다. 이미 가지고 있는 것인 줄 알았는데, 추가로 필요한 것이라고 오해하고 있었네요.

웹에서 업그레이드 실패했습니다. 현재 Discourse 버전은 3.5.0.beta1입니다.

추가 정보:

서버 명령줄에서 ./launcher rebuild app을 시도한 후에도 동일한 오류가 발생했습니다.

Discourse::ScssError: Error: @use rules must be written before any other rules. (Discourse::ScssError)

다음 명령을 실행해야 합니다.

./launcher rebuild app

1개의 좋아요

또한 ./launcher rebuild app 실행 시 이 오류가 발생합니다. Discourse 버전을 최신 버전으로 업그레이드해야 하나요?

원인을 찾았습니다. discourse-data-explorer 플러그인이 업데이트되어 v3.5.0-beta1에서 빌드되지 않았기 때문이었습니다. 죄송합니다~ :sweat_smile:

1개의 좋아요

모두, Discourse 코어에 포함된 플러그인 목록을 확인해 주세요. 새 버전의 코어에 이미 포함된 플러그인을 설치하려고 하면 설치 문제가 발생할 수 있습니다. 해당 줄을 /var/discourse/containers/app.yml 파일에서 삭제하거나 주석 처리하세요.

플러그인 목록은 다음 링크에서 확인하실 수 있습니다:

행운을 빕니다.

기분만 궁금한 건데, 왜 이 플러그인이 이제 코어 저장소의 일부가 아닌 거예요? 이게 코어 기능으로 간주되지 않는 건가요?

자체 호스팅 사이트에서만 사용할 수 있기 때문입니다.

2개의 좋아요