こんにちは、Jay @pfaffman さん
この「2 つのコンテナ」トピックに関する投稿、およびサム氏による関連記事を含め、ご投稿いただきありがとうございます。
質問です。
ご指摘のように、data 用のコンテナと web-only 用のコンテナという 2 つのコンテナを設定しようとしていますが、macOS 上でこれを動作させる際にいくつかの障害に直面しています。
しかし、macOS や Ubuntu 上でこの「2 つのコンテナ構成」のデバッグを心配する前に、正しい理由で行っていることを確認したいと考えています。
「2 つのコンテナ」の構成を行う理由は、プラグインのインストール時など、Web アプリを再構築する際にサイトがダウンしないようにするためです。また、独自開発のプラグインを微調整する際、変更が正しく機能することを確認するには再構築が必要になることが時々あります(これはまた別の話です)。また、自分自身としても「速くて使いやすい」Web 開発環境を満足いくように構築することに苦労していますが、これもまた別の話題です。
そこで質問ですが、「2 つのコンテナ」構成は、Web 専用部分のアプリを再構築する際のダウンタイムを大幅に削減するのでしょうか?
これがこの問題を考える正しいアプローチだと言えますよね?
プラグインをインストールしたり微調整したりする際、data の yml ファイルではなく、web-only の yml ファイルだけを再構築すればよいのでしょうか?
私たちは LAMP フォームの背景から来ており、プラグインへの変更は主にライブサイト上でランタイムに行うことができます(何かミスしない限りダウンタイムはありません)。また、VueJS の Web アプリでは、デスクトップ上でビルドし、新しいアプリをアップロードして配置するだけで、ほぼダウンタイムなしでアップグレードや更新が可能です。しかし、Discourse ではダウンタイムが発生してしまいます。私たちは数秒であってもダウンタイムを避けたいと考えています。
「2 つのコンテナ」ソリューションは、(1) アプリの再構築(プラグイン、コードの微調整など)または (2) フルバックアップからの復元時に、ダウンタイムを大幅に改善するのでしょうか?
この質問をしたことでまた「叩かれる」気がするのですが、Discourse を本番環境で運用し、ほぼダウンタイムなしで変更を加える方法を探しているためです。LAMP や VueJS アプリでは簡単にできることが、Discourse ではまだ見つかっていません。
そのため、まだ動作させることができていない「2 つのコンテナ」方式への関心と葛藤があります。
ありがとうございます!