3.2.1 이후 모든 작업에서 500 오류가 발생합니다

3.2.3 버전에서 다음 오류가 발생합니다(주제를 게시하거나, 수정하거나, 게시물을 승인하는 등 할 때).

2024-07-06T00:39:23.066901838Z NoMethodError (undefined method `trusted_users_can_edit_others?’ for SiteSetting:Class)

또한 다음 오류도 발생합니다:

24-07-06T00:39:24.067196373Z ActionView::Template::Error (undefined method `escape_uri' for UrlHelper:Class)
2024-07-06T00:39:24.067198898Z lib/plugin/instance.rb:541:in `block in on'
2024-07-06T00:39:24.067201202Z lib/discourse_event.rb:12:in `block in trigger'
2024-07-06T00:39:24.067203586Z lib/discourse_event.rb:12:in `trigger'
2024-07-06T00:39:24.067205881Z lib/pretty_text.rb:484:in `excerpt'
2024-07-06T00:39:24.067208165Z app/models/post.rb:523:in `excerpt'

CapRover에서 Bitnami 3.2.3 Discourse 설치 버전을 사용하고 있습니다.
플러그인은 사용하지 않지만, RO 로케일을 활성화해 두었습니다.

모든 이미지(3.2.1, 3.2.2, 3.3.3)를 시도해 보았지만, 여전히 동일한 오류가 발생합니다. 그 외 다른 기능은 정상적으로 작동하는 것 같으며, 3.2 업데이트 이전에는 문제가 없었습니다.

필요하다면 전체 스택 트레이스를 아래에 첨부합니다:

2024-07-06T01:01:05.331159453Z Completed 500 Internal Server Error in 287ms (ActiveRecord: 0.0ms | Allocations: 46431)
2024-07-06T01:01:05.331163440Z NoMethodError (undefined method `escape_uri' for UrlHelper:Class)
2024-07-06T01:01:05.331167227Z lib/plugin/instance.rb:541:in `block in on'
2024-07-06T01:01:05.331170603Z lib/discourse_event.rb:12:in `block in trigger'
2024-07-06T01:01:05.331173679Z lib/discourse_event.rb:12:in `trigger'
2024-07-06T01:01:05.331176945Z lib/pretty_text.rb:484:in `excerpt'
2024-07-06T01:01:05.331180312Z app/models/post.rb:523:in `excerpt'
2024-07-06T01:01:05.331183558Z app/models/post.rb:532:in `excerpt_for_topic'
2024-07-06T01:01:05.331186833Z lib/post_creator.rb:506:in `update_topic_stats'
2024-07-06T01:01:05.331190089Z lib/post_creator.rb:196:in `block in create'
2024-07-06T01:01:05.331193455Z lib/post_creator.rb:390:in `block in transaction'
2024-07-06T01:01:05.331197323Z lib/post_creator.rb:390:in `transaction'
2024-07-06T01:01:05.331200789Z lib/post_creator.rb:188:in `create'
2024-07-06T01:01:05.331203995Z lib/new_post_manager.rb:318:in `perform_create_post'
2024-07-06T01:01:05.331207261Z lib/new_post_manager.rb:252:in `perform'
2024-07-06T01:01:05.331215837Z app/controllers/posts_controller.rb:201:in `create'
2024-07-06T01:01:05.331219554Z app/controllers/application_controller.rb:423:in `block in with_resolved_locale'
2024-07-06T01:01:05.331223071Z app/controllers/application_controller.rb:423:in `with_resolved_locale'
2024-07-06T01:01:05.331226587Z lib/middleware/omniauth_bypass_middleware.rb:64:in `call'
2024-07-06T01:01:05.331229904Z lib/content_security_policy/middleware.rb:12:in `call'
2024-07-06T01:01:05.331233230Z lib/middleware/anonymous_cache.rb:393:in `call'
2024-07-06T01:01:05.331236506Z lib/middleware/gtm_script_nonce_injector.rb:10:in `call'
2024-07-06T01:01:05.331239702Z config/initializers/008-rack-cors.rb:14:in `call'
2024-07-06T01:01:05.331242908Z config/initializers/100-quiet_logger.rb:20:in `call'
2024-07-06T01:01:05.331246204Z config/initializers/100-silence_logger.rb:29:in `call'
2024-07-06T01:01:05.331249290Z lib/middleware/enforce_hostname.rb:24:in `call'
2024-07-06T01:01:05.331252456Z lib/middleware/request_tracker.rb:236:in `call'

그런 경우 그쪽(Bitnami)에 지원을 요청할 수 있습니다. 여기서 도움을 받으려면 표준 설치를 수행해야 합니다.

처음에는 확인을 해 보았는데, 설치 가이드가 매우 길었습니다(그래서 CapRover에서 제공되는 1클릭 설치를 선택했습니다).

현재의 DB/게시물/사용자를 유지하면서 Bitnami 설치를 표준 설치로 교체하는 쉬운 방법이 있을까요?

백업을 생성한 후 새 서버에 복원할 수 있어야 합니다. Dashboard.literatecomputing.com에서는 자동화된 표준 설치가 수행됩니다. 무료 체험 그룹에 가입하여 무료로 사용할 수 있으며, 설치 과정에 대해 매우 제한적인 무료 지원이 제공됩니다.

불행히도 표준 설치(Standard Install)는 저에게 작동하지 않습니다. 이는 Discourse 이미지 내에서 Docker가 사용 가능해야 하기 때문입니다. 저는 이미 Coolify를 사용하여 컨테이너를 관리하고 있으므로, git 저장소를 해당 컨테이너 내부로 복사할 경우 작동하려면 Docker 컨테이너 안에 Docker를 설치해야 합니다.

discourse/base - Docker Image 를 사용하여 작동하도록 시도해 보겠지만, 이는 Launcher가 필요하다는 것을 의미하므로, Docker-ception(컨테이너 안의 컨테이너)을 하지 않고 완전히 격리된 Docker 컨테이너에 Discourse를 설치하는 것은 불가능합니다…

수정: 이 파일도 시도해 보았지만, 이 역시 작동하지 않았습니다. (게다가 이 파일은 오래되었거나 유지보수되지 않는 것으로 보입니다.) discourse_docker/image/base/Dockerfile at master · discourse/discourse_docker · GitHub

> [24/50] RUN /tmp/install-nginx:
53.52 objs/addon/static/ngx_http_brotli_static_module.o \
53.52 objs/ngx_modules.o \
53.52 -Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now -ldl -lpthread -lpthread -lcrypt -L/tmp/ngx_brotli/deps/brotli/c/../out -lbrotlienc -lbrotlicommon -lm -lpcre -lssl -lcrypto -ldl -lpthread -lz \
53.52 -Wl,-E
53.55 /usr/bin/ld: cannot find -lbrotlienc
53.55 /usr/bin/ld: cannot find -lbrotlicommon
53.55 collect2: error: ld returned 1 exit status
53.55 make[1]: *** [objs/Makefile:324: objs/nginx] Error 1
53.55 make[1]: Leaving directory '/tmp/nginx-1.21.0'
53.55 make: *** [Makefile:13: install] Error 2
58 |
59 | ADD install-nginx /tmp/install-nginx
60 | >>> RUN /tmp/install-nginx
61 |
62 | RUN apt -y install advancecomp jhead jpegoptim libjpeg-turbo-progs optipng
--------------------
ERROR: failed to solve: process "/bin/sh -c /tmp/install-nginx" did not complete successfully: exit code: 2

Docker 이미지 bitnami/discourse:3.0.6로 되돌리면 500 오류가 해결되고, 다시 게시물을 작성할 수 있습니다. 당분간 이 버전을 유지하다가 새 버전이 출시되면 다시 시도해 보겠습니다.

Discourse가 다른 스크립트나 도구 없이 간단히 설치할 수 있는, 사용 가능한 Docker 이미지를 조속히 제공해 주기를 바랍니다.

이 주제를 닫으셔도 됩니다.