После версии 3.2.1 при каждом действии возникает ошибка 500

С версии 3.2.3 я получаю следующую ошибку (при попытке создать тему, редактировать её, одобрять сообщения и т. д.):

2024-07-06T00:39:23.066901838Z NoMethodError (неопределённый метод `trusted_users_can_edit_others?’ для класса SiteSetting)

Также возникает следующая ошибка:

24-07-06T00:39:24.067196373Z ActionView::Template::Error (неопределённый метод `escape_uri' для класса UrlHelper)
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'

Я использую установку Discourse 3.2.3 от Bitnami на CapRover.
У меня нет установленных плагинов, но включена локаль 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 (неопределённый метод `escape_uri' для класса UrlHelper)
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'

Тогда вы можете обратиться к ним за поддержкой. Если вы хотите получить помощь здесь, вам необходимо выполнить стандартную установку.

Я сначала проверил, и руководство по установке показалось очень длинным (поэтому я выбрал доступную установку в один клик в CapRover).

Есть ли простой способ заменить установку Bitnami на стандартную (сохранив текущую базу данных, посты и пользователей)?

Вы сможете создать резервную копию и восстановить её на новом сервере. Dashboard.literatecomputing.com выполнит автоматическую стандартную установку. Вы можете присоединиться к группе бесплатной пробной версии и использовать её бесплатно, с очень ограниченной бесплатной поддержкой в процессе установки.

К сожалению, стандартная установка не работает для меня, так как требует наличия Docker внутри образа Discourse. Я уже использую Coolify для управления своими контейнерами, поэтому, если я скопирую репозиторий git внутрь этого контейнера, мне придется установить Docker внутри контейнера Docker, чтобы это заработало.

Я попробую заставить это работать, используя discourse/base - Docker Image, но это требует использования Launcher, что означает, что я не могу полностью установить Discourse в изолированный контейнер Docker, не прибегая к «Docker-ception»…

РЕДАКТИРОВАНИЕ: Я также попробовал использовать это: 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, который можно будет установить просто, без использования дополнительных скриптов или инструментов.

Вы можете закрыть эту тему.