Привет,
Я использую собственную установку Discourse (2026.5.0-latest). Сегодня я попытался включить YJIT. Я добавил "templates/enable-ruby-yjit.yml" в containers/app.yml и пересобрал приложение.
После завершения пересборки произошло кое-что интересное. Внутри Docker-контейнера я выполнил env | grep RUBY_YJIT_ENABLE и получил RUBY_YJIT_ENABLE=1. Пока всё хорошо. Но затем я выполнил sudo -u discourse RAILS_ENV=production bundle exec rails runner 'puts "YJIT enabled: #{RubyVM::YJIT.enabled?}"; puts RUBY_DESCRIPTION'… и получил:
YJIT enabled: false
ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +PRISM [x86_64-linux]
Таким образом, YJIT не был включён, несмотря на добавление шаблона enable-ruby-yjit.yml. Затем, когда я выполнил sudo -u discourse RAILS_ENV=production bundle exec rails runner 'puts "GlobalSetting.yjit_enabled=#{GlobalSetting.yjit_enabled}"', я получил GlobalSetting.yjit_enabled= — значение nil!
В любом случае, после некоторых манипуляций мне всё же удалось включить YJIT, добавив следующее в containers/app.yml:
env:
DISCOURSE_YJIT_ENABLED: true
Уверен, где-то есть ошибка (GlobalSetting.yjit_enabled никогда не должен возвращать nil), но установка переменной окружения сработала, и надеюсь, кто-то, ищущий это в Google, найдёт эту тему.