@pfaffman 変更内容をご覧いただければわかりますが、discourse_docker の Web テンプレートの指示自体を変更したわけではありません。それらを 3 つのファイルに分割しただけです。私が実際にお願いしているのはそれだけです。1 つ目のファイルは、Ruby gem のインストールや Discourse およびプラグインリポジトリの取得など、環境に依存しない指示を実行します。2 つ目のファイルはいくつかの検証を行い、3 つ目のファイルはデータベースマイグレーションやアセットの事前コンパイルなど、環境固有の処理を行います。
これによって生じる複雑さとしては、これらのファイルに何かを追加する際に、Discourse チームがそれが環境固有のもの(データベースの内容に依存するなど)かどうかを検討し、それに基づいてどのファイルに含めるべきかを定義する必要がある点が挙げられます。
公式のインストールは現在と同じように動作しますが、app.yml ファイルに 3 つのテンプレートを含める(あるいは可能であれば templates/web.template.yml ファイルでこれら 3 つをインクルードさせる)ことになります。この場合、ユーザーの視点からは何も変更されません。複数のステップで行う必要はなくなり、2 ステップインストールの恩恵は受けられませんが、現在の手法と全く同じように動作するため、破壊的な変更は発生しません。
システム管理の作業は非常に複雑になり得ると承知していますが、現在の手法を踏まえ、複雑さを最小限に抑える最もシンプルな方法で実装しようと努めました(そのため、Kubernetes や docker-compose ファイルによるサービス分離などは提案していません。それらは大規模な変更を必要とするためです。代わりに、公式インストールで行われている方法に基づいています)。