私は、マイクロサービスを実行するための一般的なユースケースであると私が信じていることを解決しようとしています。この場合、春のクラウド アプリケーションで領事をテストしています。私は 2 つの異なる方法で領事館をテストしようとしています。1 つは Docker コンテナーで実行され、もう 1 つは Docker ホスト マシンで実行されます。次に、いずれかの領事の例と対話するスプリング クラウド コンテナーを開始しようとしています。
spring クラウド アプリケーションが docker コンテナーとして実行されている場合、spring クラウド アプリケーションを consul と通信させることができませんでした。spring クラウド アプリケーションをホスト ネットワーク モードで実行すると、localhost ポートを解決できるため機能しますが、イメージの複数のインスタンスを実行したい場合、これは受け入れられるソリューションではありません。
両方のサービスをコンテナーとして実行する場合の docker compose ファイルの例を以下に示します。ここでは、環境変数を使用してスプリング クラウドにコンサル uri を設定しようとしていますが、さまざまな構成を使用して機能させることができませんでした。これらの機能が連携して動作する例を誰かが指摘できれば、非常に役立ちます。
consul1:
image: progrium/consul
ports:
- "8400:8400"
- "8500:8500"
- "8600:53/udp"
- "8600:53/tcp"
environment:
GOMAXPROCS: 100
entrypoint: "/bin/consul"
hostname: consul
command: agent -log-level=debug -server -config-dir=/config -bootstrap -ui-dir /ui
simpletest:
build: simpletest
hostname: simpletest
environment:
JAVA_OPTS: "-Xdebug -Xrunjdwp:server=y,transport=dt_socket,suspend=n -Dspring.cloud.consul.host=consul1"
ports:
- 39041:7051
- 39052:7055
# d2fdockerroot_consul1_1 consul
# links:
# - consul1