当社の内部 Discourse は、長い間同じバージョンで順調に稼働していましたが、ついに IE9 のサポートを終了することになったため、アップグレードは遅れすぎていると言えます。
このガイドは、Discourse の最新バージョンでもまだ有効であることをお伝えできます。RHEL 7 ではなく RHEL 8 を使っている場合でも問題ありません ![]()
実験の中で、追加の依存関係がある場合でも、discourse-prometheus および discourse-calendar プラグインをオフライン環境でも動作させる方法を発見しました。そのコツは、ビルドサーバーのプラグインディレクトリから Ruby Gems を取得し、さらに /var/www/discourse/vendor/bundle/ruby 内の Gems も取得することでした。
docker run -it -v ~/local/rubygems.org:/local-rubygems local_discourse/app /bin/bash -c "cp -rv /var/www/discourse/vendor/bundle/ruby /local-rubygems"
docker run -it -v ~/local/rubygems.org/plugin-gems/discourse-calendar:/local-rubygems local_discourse/app /bin/bash -c "cp -rv /var/www/discourse/plugins/discourse-calendar/gems /local-rubygems"
docker run -it -v ~/local/rubygems.org/plugin-gems/discourse-prometheus:/local-rubygems local_discourse/app /bin/bash -c "cp -rv /var/www/discourse/plugins/discourse-prometheus/gems /local-rubygems"
その後、/templates/web.template.yml 内で以下のように設定します:
- exec:
cd: $home
hook: bundle_exec
cmd:
# ローカル Ruby キャッシュをコピー
- cp -rv /local-rubygems.org/ruby/* $home/vendor/bundle/ruby/
- cp -rv /local-rubygems.org/plugin-gems/* $home/plugins/
- su discourse -c 'bundle install --local --deployment --retry 3 --jobs 4 --verbose --without test development'
余談ですが、Active Directory IIS SSO に関するトピックがどこかで失われたようですが、コードは GitHub - laktak/discourse-sso: Single Sign On for Discourse with Active Directory · GitHub でまだ利用可能であり、現在 DiscourseConnect SSO に改名されたものとも正常に動作します。