2017-08-05 16 views
0

Java Maven Webアプリケーションをドッキング・コンテナにビルドして実行します。私は、次のコマンドを使用してみました:WebブラウザでJava Maven TomcatプラグインWebアプリケーションが表示されない

docker run -it --name my_project -v "$PWD":/usr/src/my_project -w /usr/src/my_project maven:3.5.0-jdk-8 mvn clean install tomcat7:run 

それを正しくコピーリソース、実行するMavenのはクリーンインストール(成功したビルド)と私のpom.xmlに含まれているtomcat7-のmaven-pluginので実行されます。

すべてが正常に動作し、ログを構築し、私のWindowsマシン上でローカルに実行するために本当に似ています。

Run info

残念ながら、Webブラウザ上の情報は、「接続が拒否さ」があります。

何が原因で問題が発生する可能性がありますか? - 私のアプリケーションはWindows固有のものであり、Linux上で実行できません。 - アプリは完全なアプリで実行されていますが、プロキシ設定で問題があるか、ポートが設定されていませんか?

ログをさらに調べるにはどうすればよいですか?窓のドッカーのコンテナに構築しようとすると?

P.S. Windowsドッカー用のKitematicアプリでコンテナのIPをチェックします。

+0

'-p 9998:9998'パラメータを' docker run'コマンドに追加すると、何も変わりませんか? – mgyongyosi

+0

@mongongyosi Gryfiindorの10ポイント。今すぐアクセス可能なURLが利用可能です。私はさらに一歩進んでいます - ありがとう:) – gooornik07

答えて

2

3つの問題が考えられます。ご使用-wの代わりに私が掲示しながら、タイプミスだったと仮定-v

docker run -it --name my_project -v "$PWD":/usr/src/my_project -w /usr/src/my_project maven:3.5.0-jdk-8 mvn clean install tomcat7:run 

一度。次のあなたは

docker run -p 9998:9998 -it --name my_project -v "$PWD":/usr/src/my_project -w /usr/src/my_project maven:3.5.0-jdk-8 mvn clean install tomcat7:run 

あなたのマシン上のポートを公開しませんでしたこれは、ローカルホスト上のポート9998にあなたのコンテナからポート9998(右側)にマップします。

最後に、あなたのINFOログでは、聴いているのはlocalhost:9998です。これは良くない。これは、あなたの戦争がコンテナの内部からではなく、コンテナ内部で生成されたトラフィックからのリスニングを意味するためです。コンテナ内のすべてのインターフェイスをリッスンしてバインドするように戦闘を構成する必要があります。0.0.0.0:9998

+0

"コンテナ内だけで生成されるトラフィック"とはどういう意味ですか?私はアプリケーションをdocekrでローカルにビルドしたいと思いますが、実際にはローカルのWindowsファイル(コンテナの外)にアクセスする必要があります。コンテナに何かを追加するか、何かを設定する必要がありますか? – gooornik07

+1

localhostを聞くということは、localhostのコンテキストが何であれ聞くことを意味します。 VMの中ではVMです。コンテナの内部ではコンテナ自体です。したがって、あなたのVMまたはコンテナ内のbashを持つ端末の場合は、localhostがそれを指し示すでしょう。また、localhostを聴いているアプリケーションは、そのコンテキストから発生した要求にのみ応答します。だから、あなたは常に '0.0.0.0'を聞く必要があります。ファイルシステムの必要性については、ボリュームマウントを使用する必要があります。ドッカー実行コマンドの '--volume'または' -v'フラグを見てください –

関連する問題