頭にいくつかランダムなアイデアが浮かび、そのうちの1つは「プラグインをインストールするためのプラグイン」でした。それにはフォーラムの再構築が必要です。Rubyを使って再構築する方法はありますか?試したくありません。
p `cd ../../`
p `. /launcher rebuild app`
頭にいくつかランダムなアイデアが浮かび、そのうちの1つは「プラグインをインストールするためのプラグイン」でした。それにはフォーラムの再構築が必要です。Rubyを使って再構築する方法はありますか?試したくありません。
p `cd ../../`
p `. /launcher rebuild app`
標準のインストールでは、Discourse(したがってプラグイン)はDockerコンテナ内で実行されます。そのコンテナはホストファイルシステムへの完全なアクセス権を持たないため、ホストの/var/discourseディレクトリにアクセスしてapp.ymlを変更したりlauncherを実行したりすることはできません。
たとえできたとしても、ここには少し循環的な依存関係があります。./launcher rebuildを実行するとDockerコンテナが停止し、プラグインから開始したlauncher rebuildも停止してしまいます ![]()
ここには潜在的な解決策があります。例えば、追加のDockerボリュームマウントを追加して、コンテナ内から設定/ランチャーにアクセスできるようにするなどです。しかし、それは簡単ではありません。
私の記憶が正しければ、誰かがかつて「プラグインマネージャー」プラグインを作成しました。それには、ボリュームマウントなどを追加するためにapp.ymlのいくつかの調整が必要でした。しかし、今ではそのトピックを見つけることができないため、メンテナンスされていないと推測されます。誰かが見つけたらリンクを共有してくれるかもしれませんか?(あるいは、それはすべて夢だったのかもしれません
)
CDCK側では、顧客が自由にインストール/更新/アンインストールできるようにしたい場合は、テーマを使用することにしています。人々が任意にプラグインをインストールできるようにすることは、同じサーバーで実行されている他の顧客に影響を与える可能性があるため、オプションではありません。
はい、こちらです。
ふむ…なるほど。
おっと、それは考えていませんでした!
Dashboard.literatecomputing.com は、app.yml(または web_only.yml)を編集して再構築(実際にはブートストラップ、破棄、再構築)を実行することで、プラグインのインストールと削除を行います。2つのコンテナをインストールした場合、ダウンタイムは最小限です。
また、docker や postgres のアップグレード、docker のクリーンアップなども行います。これらはすべて標準的なインストールを管理しているため、それに縛られることはなく、実際に何か(たとえば、悪いプラグインのインストールなど)を実行しない限り、何も壊すことはできません。
これは(プライベートな)Discourse プラグインであり、Ansible のプレイブックを駆動します。無料トライアルグループに参加すれば、無料で(サポートは限定的ですが)使用できます。
このプラグインは単にリポジトリを /plugins ディレクトリにクローンするだけのようです。面白い。
ProCourseインストーラーは素晴らしかったです!一部のプラグインに問題を引き起こしたのは残念です。
既存のコンテナにプラグインを追加するには、コンテナ内で次のようなことを行うことができます。
cd /var/www/discourse/plugins
git clone my-plugin-url
rake db:migrate assets:precompile
sv restart unicorn
しかし、プラグインをコンテナ内に保持し、次回の再構築のために app.yml に含めるという問題があります。
app.yml から新しい環境変数を適用するために ./launcher destroy app;./launcher start app を実行したところ、新しいコンテナがデータベースのバージョンよりも遅れていることが判明し、何度も失敗しました。コンテナ内のいくつかのプラグインのみをアップグレードした場合はさらに悪化します。これらのプラグインは、古いコンテナ内の Discourse のバージョンでは機能しましたが、再構築時に取得するバージョンでは機能しません。
だから、ProCoueseプラグインはリポジトリをクローンしただけで、rm -rfでクローンされたプラグインフォルダを削除するには、そのプラグインページからしか削除できないのです。
実際、概念実証としてはかなりうまく機能しました。ただし、トラブルシューティングがより困難になる可能性があると述べられていたため、いくつかの調整が必要になる場合があります。したがって、procoureeインストーラーにアクセスする方法に関するコマンドライン情報が必要になるかもしれません。おそらく、より良いログファイルが必要です。
利点は、pro courseインストーラーを削除/コメントアウトすることで、すべてのプラグインを簡単に無効にできることです。ただし、現在は壊れています。
Joeには非常に先進的なアイデアがあります。私の記憶が正しければ、彼は最初のPost Votingプラグインを作成しましたか?