プラグインの再コンパイル方法とDiscourseの再コンパイルを避ける方法

@Ed_Bobkov

もしどうしても必要だとお考えであれば、以下の「非公式な方法」で、お望みの「本質的な部分」を実現することができます。それは、(1) 独自のベースとなる Discourse Docker イメージを作成し、(2) フォークした Discourse の GitHub コードベースをビルドして実行する方法です。

その場合、以下の手順が必要です。

Discourse の Dockerfile には以下の行があります。

git clone https://github.com/discourse/discourse.git &&\

また、ランチャースクリプトには以下の行があります。

image="discourse/base:2.0.20200512-1735"

プライベートな Docker レジストリを運用している場合は、お好みの Discourse ベースイメージをそのレジストリにプッシュできます。例えば、以下のように設定します。

image="localhost:5000/base:2.0.20200512-1735"

同様に、Discourse をフォークしている場合は、上記の Dockerfile でそのフォークを使用できます。例えば、以下のようにします。

git clone https://github.com/your_git_account/discourse.git &&\

これにより、ベース Docker イメージとビルドコードの両方を管理しやすくなります。

もちろん、この方法は推奨されません。Discourse からのバグ修正、セキュリティ更新、機能更新などの恩恵を受けられなくなるためです。また、この方法はサポート対象外であり、推奨もされていません。

ご参考になれば幸いです、@Ed_Bobkov

注:この方法では、Discourse を再ビルドすることには変わりありません。ただし、(1) ベース Docker イメージのバージョンと、(2) Discourse の GitHub リポジトリのコードを制御できます。ただし、この方法はサポート対象外であり、推奨もされていないため、すべてご自身の責任となります(私の知る限りでは)。

関連記事: