Discourse 3.5.0.beta2-dev の不具合 - SMTPとBackground Jobs

Discourse のインストールで引き続き問題が発生しています。ChatGPT がまとめた別のレポートを以下に示します。私の経験を正確に表していると思います。

レポート:Discourse のインストールと Sidekiq サービスの欠落に関する問題

コンテキスト:
Vultr インスタンスに Discourse の新規インストールを試み、安定した動作するデプロイメントをセットアップすることを意図していました。しかし、特に Sidekiq のようなサービスの欠落により、電子メール配信やバックグラウンドジョブの処理が妨げられるなど、重大な問題に遭遇しました。


発生した問題の概要

  1. 予期しないバージョンのインストール
  • 予想される v3.4.0.beta4-dev の代わりに、インストールはデフォルトで tests-passed になり、不安定なバージョンが取得されました。
  • VERSION ファイルが欠落しており、正確なインストールバージョンが不明でした。
  1. Sidekiq サービスの欠落
  • Discourse コンテナ内に /etc/service/sidekiq ディレクトリが存在しませんでした。
  • これにより、すべてのバックグラウンドジョブ(メール、通知、スケジュールされたタスク)が実行されませんでした。
  1. Discourse Git リポジトリの問題
  • コンテナ内で git rev-parse --abbrev-ref HEAD を実行すると tests-passed が返され、意図しないバージョンがインストールされたことが確認されました。
  • Git は 「検出された疑わしい所有権」 エラーを発生させ、手動介入(git config --global --add safe.directory /var/www/discourse)が必要でした。
  1. 潜在的な依存関係の問題
  • Discourse の古いバージョンがチェックアウトされた場合でも、インストール中に新しい依存関係(Ruby、Redis、Sidekiq)が取得され、互換性の問題が発生する可能性があるという懸念があります。
  • Discourse の依存関係が正しくピン留めされていない場合、環境によってインストールの動作が一貫しない可能性があります。
  1. SSL 証明書のレート制限
  • Let’s Encrypt SSL 証明書の新規取得を試みたところ、レート制限を超過したため失敗しました。
  • これにより、Nginx は期待される証明書ファイルをロードできなかったため、起動に失敗しました。

計画されている次のステップ

  1. 完全なワイプと再インストールを実行する
  • /var/discourse を完全に削除し、リポジトリを再クローンします。
  • インストールを実行する前に、安定したバージョン(例:v3.4.1)を手動でチェックアウトします。
  • デフォルトに依存するのではなく、./discourse-setup を使用して、正しいパラメータを確実にします。
  1. Sidekiq がインストールされていることを確認する
  • 再ビルドする前に、sidekiq サービスがビルドプロセスに正しく含まれていることを確認します。
  • 再ビルド後に Sidekiq が見つからない場合は、bundle list | grep sidekiq を使用して手動でインストールを確認します。
  1. 依存関係を安定したバージョンにピン留めする
  • 既知の安定した Discourse Docker イメージ(例:discourse/discourse:2.0.20240101)を明示的に使用して、依存関係の問題を回避します。
  • コンテナ内の gem バージョンをロックします(bundle install --deployment --without test development)。
  1. SSL 証明書の発行を再試行する
  • Let’s Encrypt のレート制限リセットを待ってから、SSL 証明書生成を再試行します。
  • 問題が続く場合は、一時的なトラブルシューティングのために自己署名証明書の使用を検討してください。

フィードバックのお願い

これらの課題を考慮すると、Discourse チームおよびコミュニティから以下の点についてフィードバックをいただければ幸いです。

  • 新規インストールで /etc/service/ から Sidekiq が欠落している – 他にこの問題に遭遇した方はいらっしゃいますか?
  • 依存関係の安定性を確保するためのベストプラクティス – Discourse インストールの依存関係バージョンをピン留めするための推奨される方法はありますか?
  • デフォルトで tests-passed がインストールされることによる潜在的な問題 – バージョンの取得方法に問題がある可能性がありますか?

再インストールを進める前に、どのような洞察でも役立ちます。事前に感謝いたします!