2017-01-14 11 views
1

私はドッカーで私のアプリケーションのためにundertowを使用しています。ドッカーを使ってundertow java appを実行するには

私は8080で画像

  • リストをドッキングウィンドウ、コメントを追加している

  • ファイル名を指定して実行からドッカイメージを作成

  • 脂肪のjarを作成するには、次の

    1. を行うことができますよDockerファイルの8080を表示

    2. 容器の内部からの私のURLをカール、カールはlocalhost:私はいくつかの奇妙な問題に直面しています

    8080 /サンプル、

    そしてマイコンファイルは8080のポートIと

    version: '2' 
    services: 
        login: 
        image: my-image 
        ports: 
        - "8080:8080" 
    

    ですURLにアクセスできません。

    マイDockerfile

    FROM openjdk:8-jre 
    COPY ./target/*-with-dependencies.jar /jars/service-jar.jar 
    EXPOSE 8080 
    CMD java -cp /jars/service-jar.jar my.Main 
    

    マイアンダートウリスナー

    Undertow server = Undertow.builder() 
         .addHttpListener(8080, "localhost") 
         .setHandler(path) 
         .build(); 
    

    私はまだそれがどのように実行している

    http://lists.jboss.org/pipermail/undertow-dev/2014-October/000999.html

  • 答えて

    2

    ドッキングウィンドウコンテナのIPアドレスにIPを聞くことによって、問題を修正しました。

    私は今、それが正常に動作し

    Undertow server = Undertow.builder() 
         .addHttpListener(8080, InetAddress.getLocalHost().getHostAddress()) 
         .setHandler(path) 
         .build(); 
    

    に自分のリスナーを変更しました。

    「外部IPは完全に異なるものがある。要約すると、あなたが ドッキングウィンドウで作成された iptablesの中に内部IPとして引きのホストサーバーを設定する必要がありますので、」

    私はこれを読むことを逃しました私の参照リンク(http://lists.jboss.org/pipermail/undertow-dev/2014-October/000999.html)の行。

    私の上司はそれを見つけます。

    +0

    このコンテナに複数のドッカーネットワークを使用すると、問題が発生します。このシナリオでは、あなたは '.addHttpListener(8080、" 0.0.0。0 ")'、基本的に言う: "すべてのIPアドレスで聴く" – ShrimpPhaser

    +0

    @ ShrimpPhaser、提案ありがとう。これも動作します。 –

    0

    動作させることができませんグーグルでいくつかのリンクを持ってあなたのドッカー画像? 公開ポートですか?

    docker run -p 8080:8080 ... 
    

    Related documentation

    +0

    はい、私はこれを行いました。運がいい... –

    関連する問題