Я знаю, что проблема в компоненте Alternative Logos:
I, [2021-06-25T11:00:32.360020 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile'
Failed to update Alternative Logos
about.json contains invalid values: Maximum discourse version is invalid
/var/www/discourse/app/models/remote_theme.rb:169:in `update_from_remote'
/var/www/discourse/lib/tasks/themes.rake:61:in `block (2 levels) in <main>'
У меня был этот компонент, но так как Discourse недоступен, я не могу зайти в панель администратора, чтобы удалить его. Как можно удалить этот компонент темы через командную строку?
Не уверен, что делает команда cleanup в отношении остановленных контейнеров, но, возможно, стоит просто выполнить ./launcher start app и отключить проблемное расширение (в https://your.domain/admin/customize/themes)?
I, [2021-06-25T11:00:32.360020 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile'
Не удалось обновить Alternative Logos
about.json содержит недопустимые значения: Максимальная версия Discourse указана неверно
/var/www/discourse/app/models/remote_theme.rb:169:in `update_from_remote'
/var/www/discourse/lib/tasks/themes.rake:61:in `block (2 levels) in <main>'
У меня был этот компонент, но так как Discourse не работает, я не могу зайти в панель администратора, чтобы удалить его. Как удалить этот компонент темы через командную строку? Я не могу пересобрать или запустить приложение, так что это проблема.
Не удалось найти образ 'local_discourse/app:latest' локально
docker: Ошибка ответа от демона: доступ к загрузке для local_discourse/app запрещен, репозиторий не существует или может потребоваться 'docker login': отказано: запрошенный доступ к ресурсу запрещен.
См. 'docker run --help'.
Хотя, если вы выполнили ./launcher cleanup, пока старый контейнер был остановлен, и у вас нет контейнера для запуска, то вы оказались в довольно сложной ситуации. Это то, что вы сделали? Похоже, что именно это вы и сделали.
Думаю, это баг, из-за которого некорректный компонент темы делает невозможным обновление, поэтому, возможно, скоро появится решение.
Я полагаю, что можно изменить базу данных, чтобы удалить компонент темы, но если у вас нет запущенного контейнера для доступа к базе данных, я не совсем уверен, как это сделать.
Единственное другое экстренное решение — проверить, можно ли восстановить существующую базу данных на чистой установке.
Возможно, вы сможете восстановить базу данных на чистой установке (может быть, она проигнорирует сломанную тему?), затем удалить вашу базу данных и создать новую пустую базу данных с обновлённым Discourse, после чего восстановить базу данных из удалённой чистой установки.
Другое решение — создать образ только с базой данных и с помощью SQL удалить сломанный компонент темы.
Полагаю, мне придётся выполнить чистую установку и восстановить данные из резервной копии (и в этом .sql-файле с резервной копией я внесу изменения в раздел «Альтернативные логотипы»).
Однако это действительно плохая ситуация: если компонент сломает Discourse, у вас не останется другого выбора, кроме как выполнить чистую переустановку.
Хорошо, решение заключалось в том, чтобы установить свежую версию Discourse, восстановить данные из резервной копии, а затем удалить компонент, вызывавший проблему.
У меня сегодня утром возникла похожая ситуация, но я просто перезапустил приложение.
На моём сайте около 10 тем оформления, и во всех из них использовался компонент «Альтернативные логотипы», поскольку каждая тема требует логотипов разного цвета для соответствия своей цветовой схеме. Я вижу, что теперь можно добавить логотипы для тёмной темы в настройках сайта. Однако, если я удалю этот устаревший компонент, где мне нужно будет добавить все остальные пользовательские логотипы для остальных тем?
Думаю, проблема только в файле about.json, и вы можете сделать форк компонента темы, чтобы создать свою версию. Но я не изучал это подробно и не пробовал сам.