Webのみ - 各コンテナに別の画像が必要ですか?

皆さん、こんにちは。

些細なことだと思いましたが、明確な答えが見つからなかったので、ここで質問します。

Web専用コンテナの場合、コンテナが共有する/共有すべきイメージをどのように作成・使用しますか?

これは確かに理にかなっているはずです。このような「薄い」ディスコースコンテナは、すべて外部(特に貧乏人の予算でXS VMを使用する場合)にあり、それぞれが独自のDockerイメージを持っているのは…私の考えでは意味がありませんよね?

このような単純な(そして一般的/人気のある?)シナリオに関する「明白な」ドキュメント/ハウツーを見逃していることを願っていますか?
よろしくお願いします。

はい、単一のPostgresを複数のDiscourseサイトに使用できますが、マルチサイト(https://meta.discourse.org/t/multisite-configuration-with-docker/14084を参照)を使用しない限り、それぞれに独自のRedisが必要です。

別のデータベースを作成し、2番目のWebコンテナがDiscourseという名前のデータベースの代わりにそれを使用するように構成する必要があります。

「いいね!」 1

お時間を割いて試していただきありがとうございます。しかし、それは私が尋ねていることではありません。
もう一度試します。また失敗したらごめんなさい。
私が:

  • $ ./launcher bootstrap a.forum.xyz # またはそれに類するもの
    を実行すると、プロセスは以下を作成します:
- $ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
local_discourse/a.forum.xyz latest d7a7b6509811 2時間前 4.19GB

そして、これは異なる/新しいフォーラムのために実行されたlauncherごとに発生します。
そのため、同じdiscourseの複数のイメージができてしまいます。これは私だけでしょうか?それとも結果は異なるべきでしょうか?
もし私だけではなく、それが望ましい、期待される結果であるならば、もちろん私は開発者ではなく、関与するプロセスについての知識はありませんが、むしろ本当に非常に無駄が多い(特にweb-onlyコンテナでは)のではないでしょうか?

私が最初にdiscourseを試したときに期待していたのは、ほぼすべての他のソフトウェアがdockerizedされているのと同じようなものでした。つまり、その一つのイメージを取得し、それから多くのコンテナを実行することです。discourseはそれができないのでしょうか?

異なるサイトで同じコンテナを異なる設定で使用したい場合は、以下のコマンドを実行できます。

./launcher start-cmd

これにより、開始するためのパラメータを取得できます。実行したい他のサイト用にそれらを変更できます。それぞれにデータベースとRedisが必要になります。

「いいね!」 2

これには、JS、CSS、その他のアセットを含む、サイトのテーマのユニークなコピーが含まれています。

また、プラグインとその依存関係のユニークな組み合わせも含まれています。

長い歴史がありますが、Discourseとほとんどのツールは、Docker Composeのようなものよりも前に存在していました。

私たちは、あらゆるものを詰め込んだ「fat container」を出荷しており、それにはいくつかのトレードオフがあります。その一つとして、ステートフルなコンテナは、Webベースのワンクリックアップデーターのような機能を提供します。

今日一般的にコンテナがデプロイされる方法に対するより現代的なアプローチから来ると、確かに大きな不一致です。これはDiscourseはブートストラップを必要としない頻繁なDockerイメージを出荷できますか?で長く議論されており、読む価値があります。

結局のところ、現在の現状は、SSHセッションでコマンドをコピー&ペーストでき、DNSを設定できるが、Linuxコンテナのマスターではない、わずかに技術に詳しい人々にとってうまく機能します。

そして、Linuxコンテナの黒帯である人々には、そのブートストラップされたイメージを取得し、レジストリに出荷し、お気に入りのコンテナオーケストレーションソフトウェアで再利用できると伝えることができます。

しかし、上記の2つのペルソナの間にある人々は、最も痛みを強く感じます。

「いいね!」 2

そのハウツーでは、複数のインスタンスに1つのRedisを使用する方法についての説明が見つかりませんでしたが、マルチサイト構成が利用可能な場合、これはそのまま機能するように思われますか?

私の理解は正しいですか?
a) マルチサイトは、1つのRedisと1つのPostgresサーバーを使用して、複数のフォーラムで同じDockerイメージを実行します。
b) 複数のDiscourseインスタンス(同じイメージを使用するかどうかに関わらず)に1つのRedisを使用することは、マルチサイトをオンにしないとRedisキーにプレフィックスが追加されないため、可能ではありません。
c) Redisキーのプレフィックスを強制する他の方法はありません。
d) 異なるDiscourseイメージに異なるRedisキープレフィックスを強制することで、1つのRedisサーバーを使用できるようになります。
e) 一般的なRedisプレフィックスを強制するための一般的なサポートには、いくつかのコアな変更が必要になります。