の実際のIPアドレスを取得し、私は、Apacheカフカ+ ZooKeeperのコンテナを設定している:Mavenの、ドッカーはMavenと<a href="https://dmp.fabric8.io/" rel="nofollow noreferrer">docker-maven-plugin</a>でホストシステム
<image>
<name>wurstmeister/zookeeper:${zookeeper.version}</name>
<alias>zookeeper</alias>
<run>
<ports>
<port>${zookeeper.port}:2181</port>
</ports>
</run>
</image>
<image>
<name>wurstmeister/kafka:${kafka.version}</name>
<alias>kafka</alias>
<run>
<ports>
<port>9093:9092</port>
</ports>
<links>
<link>zookeeper:zookeeper</link>
</links>
<env>
<KAFKA_ADVERTISED_HOST_NAME>192.168.1.202</KAFKA_ADVERTISED_HOST_NAME>
<KAFKA_ADVERTISED_PORT>9093</KAFKA_ADVERTISED_PORT>
<KAFKA_ZOOKEEPER_CONNECT>zookeeper:${zookeeper.port}</KAFKA_ZOOKEEPER_CONNECT>
</env>
</run>
</image>
あなたが見ることができるように、それは働いて得るために私が提供しなければなりません私のホストシステムの実際のIPアドレス:
<KAFKA_ADVERTISED_HOST_NAME>192.168.1.202</KAFKA_ADVERTISED_HOST_NAME>
はそれをハードコーディングしていないニーズに合わせて自動的にこのIPアドレスを取得するためのMavenやdocker-maven-pluginのいずれかの方法はありますか?
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>get-local-ip</id>
<goals>
<goal>local-ip</goal>
</goals>
<configuration>
<localIpProperty>local.ip</localIpProperty>
</configuration>
</execution>
</executions>
</plugin>
が、それを使用するために、私はMavenの残りのコマンドの前build-helper:local-ip
目標を実行する必要があります。
は、私は私がホストのIPアドレスを取得することを可能にするプラグインを見つけ
を更新しました:
mvn build-helper:local-ip docker:start
このプラグインをフェーズ/ゴールにバインドして自動起動する方法毎回build-helper:local-ip
を手動で起動する必要がなく、初期の初期化フェーズで
ドッキング用の管理コンテナの場合、ホストのデフォルトのネットワークアドレスは172.17.0.1 –
ありがとうございます。残念ながら、私のKafkaセットアップはこのIPアドレスでは正しく動作せず、実際のホストIPでのみ動作します。詳細については、次の質問をご覧ください。https://stackoverflow.com/questions/47439477/kafka-docker-and-port-forwarding-from-9092-to-9093 – alexanoid