lktmxjv
(lktmxjv)
1
このようなスレッドhttps://meta.discourse.org/t/can-discourse-ship-frequent-docker-images-that-do-not-need-to-be-bootstrapped/33205や他を拝見しましたが、これまで Discourse イメージを ECS や GKE、あるいはお好みのコンテナオーケストレーション環境に簡単に展開して動作させる方法はないようです。
私は Terraform を使って Elasticache クラスター、RDS インスタンス、ECS クラスターを管理しています。Discourse イメージと、Postgres、Redis、SMTP などに接続するための環境変数を指定するだけで済むような仕組みがあればいいのですが。
2020 年現在、このようなものは存在するでしょうか?このトピックに関する過去のあらゆる議論において、満足な解決策は得られず、いまだに Discourse の独自スクリプトに依存せざるを得ず、それがコンテナの慣習に反し、コンテナを扱う人々の一般的な方法との互換性を損なっているように思われます。
「いいね!」 1
それは誤った前提です。それらはすべて Discourse の構成要素であり、正常なセットアップを保証するために、Discourse が自身のコンテナ内でそれらを制御する必要があります。
複数のコンテナを含む複雑なシナリオになる場合、それは多額の資金を持つ大規模な顧客にとってのみ「必要」です。そのような場合は、当社のエンタープライズホスティングサービスをご参照ください。
「いいね!」 1
lktmxjv
(lktmxjv)
4
しかし、なぜそのようなコンテナを起動し、オーケストレーターとして機能する奇妙なブートストラップスクリプトが必要なのでしょうか?
なぜ Discourse イメージは環境変数を受け取り、エントリーポイントからそれらすべてのリソースにアクセスして必要なテーブルを作成するなどの処理ができないのでしょうか?外部の永続化層に依存する他のサービスや Web アプリは、このようにコンテナ化されて成功しています。それらを ECS や EKS などに投入し、データベースの場所などを指示するだけで、すべてがうまく機能します。Discourse でもこれは可能でしょうか?
私たちはその逆、つまり予算があまりない非営利組織であるからこそ、すべてのエンタープライズアプリを単一の AWS ECS ホストに集約することで、コストを可能な限り抑えたいと考えています。しかし、そのためには個々のアプリがきれいにコンテナ化され、ECS タスク定義として定義可能、つまり自己完結型の Docker イメージである必要があります。
まあ、そうとも言えますね。Discourse は、単一の Docker イメージとしてシンプルにインストールできるため、月額 5 ドルの VPS でも十分動作します。インストールの難易度が大幅に上がり、メンテナンスの複雑さも増すのに、わずかな金額を節約するためにそんな手間をかける価値があるでしょうか?シンプルにいきましょう!
「いいね!」 4
pfaffman
(Jay Pfaffman)
6
上記のリンクが説明している通り、コンテナを構築し、Kubernetesで起動できます。一部のクライアントでは、プラットフォームに依存しているため、GKEのデプロイを要求され、それに対応しました。
もし目的が費用の節約であれば、月額5ドルから10ドルがおすすめです。
「いいね!」 1
schleifer
(Andrew Schleifer)
7
当社のツールは、コンテナオーケストレーションを管理する専門的な IT を持たない小規模なグループという、圧倒的に最も一般的なユーザーのために最適化されています。
ただし、フルクラウド環境で運用する必要がある場合でも、必要な機能は利用可能です。参照すべきソースリポジトリは以下の通りです。
その中の samples/web_only.yml ファイルには、外部リソースの使用方法が示されています。
また、launcher スクリプトは、bootstrap サブコマンドを使用してカスタム Docker イメージを構築することも可能です。
「いいね!」 8