2017-05-29 15 views
0

私はホストOS(Windows 10)にJava Webアプリケーションを配備しようとしていますが、上記のwebappをTomcat Docker Container (場所/usr/local/tomcat/webapps/mywebapp)。Tomcat Docker Container:host webappディレクトリをコンテナwebappディレクトリにマウント

私はDocker端末(WindowsのWebアプリケーションの絶対パス)で次のコマンドを実行しています。注: "mywebapp"ホストディレクトリにはすでに展開された/展開されていない戦争が含まれています。

docker run --name=tomcat_7_0_78 --detach --publish 8080:8080 -v /c/desarrollo/workspace/webMavenTest/target/mywebapp:/usr/local/tomcat/webapps/mywebapp tomcat:7.0.78

私は、Tomcatが起動し、Webアプリケーションコンテナフォルダが「mywebapp」フォルダなど、その内部にいくつかのデフォルトのWebアプリケーションを持っていることがわかります。問題は、それが空であるためにwebappが動作していないことです。

これを使用してEclipse IDEでアプリケーションをDockerに統合し、IDEで変更を加えたときにアプリケーションを再デプロイすることをお勧めします。

洞察?

ありがとうございます。

答えて

0

すべてのファイルをホットデプロイする場合は、リモートアプリケーションサーバーで変更することはできません。理由は、Eclipseにはtomcatプロセスを制御する権限がないからです。

解決策は、配布後にアプリケーションをビルドしてtomcatを再インストールできるように、配布物のコピーにボリュームを生成するwebappを生成することです。

それは次のようになります。

docker run --name = tomcat_7_0_78 --detach --publish 8080: 8080 -v /path/to/copy/war/app.war:/usr/local/tomcat/webapps/app.war tomcat: 7.0.78 

そして、あなたのホストにあなたのアプリケーションのターゲットにプロジェクト外の「戦争」のコピーを作成する必要があります。これは、mavenがターゲットフォルダを削除するときに、ドッカーボリュームが切り離され、再度リフレッシュされないために必要です。アクションを保存する上でフックを実行するプラグインで、展開を自動化する

How do I start Maven "compile" goal on save in Eclipse?

あなたはMavenのすべての時間を実行して、CPUを大量に消費するので、私は、それをお勧めしません。たぶんそれを行うためのローカルスクリプトを書いてください。

0

あなたの時間とあなたの答えをありがとう、非常に有用な、私は本当にそれを感謝します。

私はこれを簡単に統合することを期待しましたが、直接的な解決策はないようです。

ところで、私はwebappディレクトリがTomcat Docker Containerで常に空であることを知りました。私のwebappホストパス(Windows)は、この/ c/users /ユーザー名/ドキュメント/ ....../eclipseWorkspace/mywebappProject/target/mywebapp。

当面はリモートデバッグを有効にすると思いますので、Javaクラスを変更するたびにホットコードを置き換え、後で他の種類のファイルで何ができるかを見ていきます。

mavenがターゲットフォルダを削除したときの問題について、あなたがEclipseからmaven cleanを実行するとwebappが切断されることを確認しましたが(もしあなたが言ったように)、mavenをインストールすると、 Tomcat Docker Container、それほど悪くないかもしれません。

関連する問題