2017-05-16 14 views
3

私はAWS ECSコンテナでカフカを実行しようとしています。私はこのセットアップをすでにローカルのドッカー環境で使用しています。spotify/kafkaimageAWS ECSのKafka、既知のインスタンスなしでadvertised.hostを処理する方法は?

これをローカルで実行するには、ADVERTISED_HOST environment variable was setを確保する必要がありました。 ADVERTISED_HOSTをコンテナの外部IPとして設定する必要がありました。それ以外の場合は、接続しようとしたときに私にはただconnection refusedが与えられました。

マイdocker-compose.yamlはカフカのコンテナのためにこれを持っているローカル:

kafka: 
    image: spotify/kafka 
    hostname: kafka 
    environment: 
    - ADVERTISED_HOST=192.168.0.70 
    - ADVERTISED_PORT=9092 
    ports: 
    - "9092:9092" 
    - "2181:2181" 
    restart: always 

今の問題は、私は、これは上の実行するインスタンスを知らないと、私は、IPがあることを行っているかわからないです。どうすればその環境変数を設定できますか?

+0

あなたは '0.0.0.0'を試みたことがありますか? – kichik

+0

@kichikに感謝します。はい、ちょうどそれを試して、動作しませんでしたが、私はそれが外部IP(パブリックまたはプライベートが行う)でなければならないと思うので、カフカブローカーに接続することができます – Horse

答えて

3

起動スクリプト(この場合はhttp://169.254.169.254/latest/meta-data/local-hostname)をEC2 Metadata Serviceにコールして、外部からドッカーのホスト名を取得し、その変数を設定する必要があります。

サンプル:

[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/local-hostname 
ip-10-251-50-12.ec2.internal 
+2

同じことがここに記載されてhttps://github.com /wurstmeister/kafka-docker/blob/master/README.md#advertised-hostname – Abhishek

関連する問題