同じ構成ファイルを使用して、マルチコンテナー アプリケーションの複数のインスタンスを同時に実行したいと考えています。アプリケーション内のコンテナーの 1 つは、特定のポートで websocket を受け入れます。
さまざまなドメインまたは場所をアプリケーションのさまざまなインスタンスに転送する nginx プロキシがあります。インスタンスは、実際にはアプリケーションを使用する異なるテナントです。
私は単に実行できるようにしたい:
docker stack deploy -c docker-stack.yml tenant1
docker stack deploy -c docker-stack.yml tenant2
そして、どうにかしてアプリへのさまざまなポートを取得し、それをプロキシで使用して、場所または仮想ホストを使用して、さまざまな WebSocket 接続をさまざまなアプリケーション インスタンスに転送できます。
したがって、次のいずれかです。
ws://tenant1.mydomain.com
or
ws://mydomain.com/tenant1
これを行うようにプロキシを構成する方法は、確実に理解できます。https://github.com/jwilder/nginx-proxyについて少し読み始めました。ただし、各アプリ インスタンスの環境変数として仮想ホスト名を設定する必要があり、docker stack deploy コマンドで引数を渡す方法が見つからないようです。
理想的には、正確なポートを気にせず、むしろランダムにしたいと思います。ただし、転送できるようにするには、何らかの方法で nginx プロキシに認識させる必要があります。新しい appinstance (テナント) スタックを簡単にスピンアップして、その名前のプロキシをセットアップできるようにしたい (または、プロキシがアプリの名前付けで自動的に処理できる場合はさらに良い)。
サブドメイン/新しいドメインを作成せずにテストと開発が可能になるため、上記の両方の例 (仮想ホストと場所の両方) が機能する場合はボーナスです。
提案?