フロントに zuul ベースのリバース プロキシを備えたいくつかのスプリング ブート ベースのマイクロサービスで構成されるアプリケーションを作成しています。
自分のマシンでサービスを開始すると機能しますが、サーバーのロールアウトのためにサービスに docker を使用したいのですが、これは今のところ不可能のようです。
通常、コンテナの外側には固定の「内部」ポートとランダム化されたポートがあります。しかし、コンテナー内のアプリは、外部ポート (および IP) を知りません。
Netflix のツールは、私が効率的なマイクロサービス アーキテクチャを書きたいと思っていたものと一致しており、概念的には Docker が本当に好きです。私が見る限り、コンテナーを起動し、ホストの外部ポートを収集してアプリに渡すのは非常に面倒です。アプリの起動後にポートを単純に変更することはできないからです。
Docker ベースのクライアントで eureka を使用する方法はありますか?
[更新] 問題の説明が不十分だったと思います。だから多分これはそれをもう少し明確にします:
eureka サーバー自体は docker で実行できます。1 つしかなく、外部ポートは関係ありません。リンク機能を使用して、クライアントからアクセスできます。
問題は、クライアントが自分自身を登録する URL です。これはたとえばhttps://localhost:8080/ですが、動的ポート割り当てのため、実際にはhttps://localhost:54321/経由でしかアクセスできません。
そのため、eureka はサービスに対して間違った URL を返します。
更新 以下の回答を更新しましたので、そちらをご覧ください。