При восстановлении свежей установки Discourse до Ember 5 (целевая ветка beta) возникает бесконечный экран загрузки

Смотрите заголовок. Я оказался в довольно неприятной ситуации. Я пытаюсь откатиться к сборке Discourse до версии Ember 5, чтобы обеспечить долгосрочную поддержку устаревших версий для моего форума, который зависит от плагинов, ставших неработоспособными после нового релиза Discourse. Чтобы отмотать время назад на несколько дней, я всё очистил (удалил контейнер, полностью удалил /var/discourse и заново загрузил репозиторий с GitHub), и теперь начинаю с чистого листа с абсолютно свежей установкой Discourse. В моём файле .yml я указал “version: beta”, поэтому я должен оказаться в версии до Ember 5.

После того как я выполнил обычные действия по созданию и подтверждению учётной записи администратора, у меня появляется бесконечный экран загрузки. Да, я также захожу в безопасный режим и включаю принудительное использование HTTPS, как всегда делаю в своей настройке.

Я перепробовал всё: удалял плагины, начинал заново без каких-либо плагинов, кроме абсолютно минимального набора — всего лишь…

      - git clone https://github.com/discourse/docker_manager.git

… в моём файле .yml. Никаких результатов. После настройки учётной записи администратора я всё ещё (даже на минимальной чистой установке) вижу бесконечный экран загрузки смерти.

Посмотрев в консоль, я вижу следующее:

Вот мой текущий файл .yml:

## это шаблон контейнера Docker Discourse "всё в одном", автономный
##
## После внесения изменений в этот файл вы ОБЯЗАНЫ выполнить пересборку
## /var/discourse/launcher rebuild app
##
## БУДЬТЕ *ОЧЕНЬ* ОСТОРОЖНЫ ПРИ РЕДАКТИРОВАНИИ!
## YAML-ФАЙЛЫ ЧРЕЗВЫЧАЙНО ЧУВСТВИТЕЛЬНЫ К ОШИБКАМ В ПРОБЕЛАХ И ВЫРАВНИВАНИИ!
## для проверки файла используйте http://www.yamllint.com/

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
## Раскомментируйте эти две строки, если хотите добавить Lets Encrypt (https)
  #- "templates/web.ssl.template.yml"
  #- "templates/web.letsencrypt.ssl.template.yml"

## какие TCP/IP-порты должен открывать этот контейнер?
## Если вы хотите, чтобы Discourse использовал тот же порт, что и другой веб-сервер, например Apache или nginx,
## см. https://meta.discourse.org/t/17247 для деталей
expose:
  - "10080:80"   # http
  - "10443:443" # https

params:
  db_default_text_search_config: "pg_catalog.english"

  ## Установите db_shared_buffers максимум в 25% от общего объёма памяти.
  ## будет установлено автоматически при загрузке в зависимости от обнаруженной оперативной памяти, или вы можете переопределить
  db_shared_buffers: "2048MB"

  ## может улучшить производительность сортировки, но увеличивает потребление памяти на соединение
  #db_work_mem: "40MB"

  ## Какую ревизию Git должен использовать этот контейнер? (по умолчанию: tests-passed)
  version: beta

  ## Максимальный размер загрузки (по умолчанию: 10m)
  upload_size: 8196m

env:
  LANG: en_US.UTF-8
  # DISCOURSE_DEFAULT_LOCALE: en

  ## Сколько одновременных веб-запросов поддерживается? Зависит от объёма памяти и количества ядер CPU.
  ## будет установлено автоматически при загрузке в зависимости от обнаруженных процессоров, или вы можете переопределить
  UNICORN_WORKERS: 8

  ## TODO: Доменное имя, на которое будет реагировать этот экземпляр Discourse
  ## Обязательно. Discourse не будет работать с чистым IP-адресом.
  DISCOURSE_HOSTNAME: forum.tabletpc.review

  ## Раскомментируйте, если хотите, чтобы контейнер запускался с тем же
  ## именем хоста (опция -h), что указано выше (по умолчанию "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO: Список email-адресов через запятую, которые станут администраторами и разработчиками
  ## при первоначальной регистрации, например 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: 'admin@tabletpc.review'

  ## TODO: SMTP-сервер, используемый для проверки новых учётных записей и отправки уведомлений
  ## SMTP-адрес, имя пользователя и пароль обязательны
  ## ВНИМАНИЕ: символ '#' в пароле SMTP может вызвать проблемы!
  DISCOURSE_SMTP_ADDRESS:  [REDACTED]
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME:  [REDACTED]
  DISCOURSE_SMTP_PASSWORD: " [REDACTED]"
  #DISCOURSE_SMTP_ENABLE_START_TLS: true           # (опционально, по умолчанию true)

  ## Если вы добавили шаблон Lets Encrypt, раскомментируйте ниже, чтобы получить бесплатный SSL-сертификат
  #LETSENCRYPT_ACCOUNT_EMAIL: me@example.com

  ## Адрес CDN для этого экземпляра Discourse (настроен на получение)
  ## см. https://meta.discourse.org/t/14857 для деталей
  #DISCOURSE_CDN_URL: //discourse-cdn.example.com

  DISCOURSE_MAXMIND_LICENSE_KEY: [REDACTED]

## Контейнер Docker не хранит состояние; все данные хранятся в /shared
volumes:
  - volume:
      host: /var/discourse/shared/tabletpcreview
      guest: /shared
  - volume:
      host: /var/discourse/shared/tabletpcreview/log/var-log
      guest: /var/log

## Плагины размещаются здесь
## см. https://meta.discourse.org/t/19157 для деталей
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git

## Любые пользовательские команды для выполнения после сборки
run:
  - exec: echo "Начало пользовательских команд"
  ## Если вы хотите установить адрес электронной почты 'From' для вашей первой регистрации, раскомментируйте и измените:
  ## После получения первого письма о регистрации закомментируйте строку обратно. Выполнять нужно только один раз.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec: echo "Конец пользовательских команд"

РЕДАКТИРОВАНИЕ: Странно, но если отключить плагины в безопасном режиме, сайт работает. Однако, если оставить их включёнными, он не работает. У меня всего один плагин — Docker Manager, так почему же он не загружается?

Это работает: https://forum.tabletpc.review/?safe_mode=no_plugins

Это не работает: https://forum.tabletpc.review/?safe_mode=no_themes

Верно, но сейчас у меня чистая установка, буквально ничего на ней нет, и сайт отказывается загружаться. См. файл .yml. Никаких плагинов. Также никаких тем. Никаких компонентов тем. Я настраиваю всё с нуля и получаю бесконечный экран загрузки. Нет плагинов, кроме Docker Manager. Я крайне сбит с толку, почему это не работает.

Хорошо, да, извините, это запутанно!

Поэтому я думаю, что вам, вероятно, стоит забыть о beta и переключиться на tests-passed, чтобы проверить, сможете ли вы восстановить сборку, а затем собрать её обратно по частям.

Действительно. Я попробую выполнить чистую установку в другой среде. Похоже, что в данный момент версия beta не работает. Раньше я мог указывать версию beta в своём файле .yml. Скорее всего, в плагине Docker Manager произошло изменение, несовместимое с обратной совместимостью.

Вот оно. В Docker Manager должно быть изменение, ломающее бета-версию. (Поэтому предупреждение всем, кто использует бета-версию как основную цель для контейнеров: не обновляйтесь!)

Я разбираюсь и, думаю, уже понял, какой плагин является виновником для основной ветки / прошедших тестов.

Вердикт: Для тех, кто, как и я, держится за него, с выходом Ember 5 Retort больше не поддерживается. :frowning: Изучаю варианты сохранения его функций.