У меня по-прежнему возникают трудности с установкой Discourse. Вот ещё один отчёт, составленный ChatGPT. Я считаю, что он точно отражает мой опыт.
Отчёт: Проблемы с установкой Discourse и отсутствием службы Sidekiq
Контекст:
Мы попытались выполнить чистую установку Discourse на экземпляре Vultr, намереваясь создать стабильную и рабочую развёрнутую систему. Однако мы столкнулись с серьёзными проблемами, особенно с отсутствием служб, таких как Sidekiq, что препятствовало доставке электронной почты и фоновой обработке задач.
Краткое описание encountered проблем
- Установлена неожиданная версия
- Вместо ожидаемой
v3.4.0.beta4-devустановка по умолчанию перешла наtests-passed, загрузив потенциально нестабильную версию. - Файл
VERSIONотсутствовал, поэтому не было ясно, какая именно версия была установлена.
- Отсутствует служба Sidekiq
- Директория
/etc/service/sidekiqотсутствовала внутри контейнера Discourse. - Это привело к тому, что все фоновые задачи (электронная почта, уведомления, запланированные задачи) не выполнялись.
- Проблемы с репозиторием Git Discourse
- Запуск команды
git rev-parse --abbrev-ref HEADвнутри контейнера вернулtests-passed, что подтверждает установку нежелательной версии. - Git выдал ошибку “detected dubious ownership” (обнаружено сомнительное владение), потребовав ручного вмешательства (
git config --global --add safe.directory /var/www/discourse).
- Возможные проблемы с зависимостями
- Даже если будет проверена более старая версия Discourse, существует опасение, что во время установки могут быть подтянуты новые зависимости (Ruby, Redis, Sidekiq), что потенциально вызовет проблемы совместимости.
- Если зависимости Discourse не зафиксированы правильно, установка может вести себя непоследовательно в разных средах.
- Ограничение скорости выдачи SSL-сертификатов
- Попытка получить новый SSL-сертификат Let’s Encrypt не удалась из-за превышения лимита скорости.
- Это привело к тому, что Nginx не смог запуститься, так как не смог загрузить ожидаемый файл сертификата.
План следующих шагов
- Полная очистка и повторная установка
- Полностью удалить
/var/discourseи заново клонировать репозиторий. - Вручную проверить стабильную версию (например,
v3.4.1) перед запуском установки. - Использовать
./discourse-setupвместо полагания на параметры по умолчанию, чтобы обеспечить правильные настройки.
- Обеспечить установку Sidekiq
- Перед пересборкой убедиться, что служба
sidekiqправильно включена в процесс сборки. - Если Sidekiq отсутствует после пересборки, вручную проверить его установку с помощью команды
bundle list | grep sidekiq.
- Зафиксировать зависимости на стабильных версиях
- Избежать проблем, связанных с зависимостями, явно используя известный стабильный образ Docker Discourse (например,
discourse/discourse:2.0.20240101). - Зафиксировать версии gem-пакетов внутри контейнера (
bundle install --deployment --without test development).
- Повторить попытку выпуска SSL-сертификата
- Дождаться сброса лимита скорости Let’s Encrypt и повторить попытку генерации SSL-сертификата.
- Если проблемы сохранятся, рассмотреть возможность временного использования самоподписанного сертификата для устранения неполадок.
Запрос обратной связи
Учитывая эти трудности, мы были бы признательны за мнение команды Discourse и сообщества по следующим вопросам:
- Отсутствие Sidekiq в
/etc/service/при чистой установке – Столкнулся ли кто-нибудь ещё с этой проблемой? - Лучшие практики обеспечения стабильности зависимостей – Есть ли рекомендуемый способ фиксации версий зависимостей для установок Discourse?
- Возможные проблемы с установкой
tests-passedпо умолчанию – Может ли быть проблема с тем, как версии извлекаются?
Любые insights будут полезны перед тем, как мы приступим к повторной установке. Заранее спасибо!