2017-05-29 61 views
0

我試圖部署位於我的主機操作系統(Windows 10)Java Web應用程序,我想安裝的Web應用提到作爲Tomcat下碼頭工人集裝箱目錄(地點/usr/local/tomcat/webapps/mywebapp)。Tomcat的碼頭工人集裝箱:主機webapp目錄掛載爲容器的webapps目錄下

我跑在泊塢終端(我在Windows webapp的絕對路徑)下面的命令。注意:「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應用的容器文件夾裏面有幾個是默認的webapps包括「mywebapp」文件夾中。問題是它是空的,所以Web應用程序無法正常工作。

我想,當我做我的,通過改變IDE用這個來我的應用程序集成與泊塢窗Eclipse IDE和實現重新部署應用程序。

任何見解?

在此先感謝。

回答

0

如果你想一個熱部署的每個文件的變化,它是不可能與遠程應用服務器來做到這一點。原因是eclipse沒有控制tomcat進程來執行它。

現在一個可能的解決方法是生成生成捲到交付的副本,以便進行更改後,您可以執行應用程序的構建和tomcat重新安裝web應用程序。

它應該是這樣的:

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刪除目標文件夾時,docker卷將被取消並且不會再次刷新。

要與在拯救行動進行掛鉤的插件自動部署:

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

我不建議這樣做,因爲你運行Maven所有的時間和消耗大量的CPU。也許寫一個本地腳本來做到這一點。

0

謝謝你的時間和你的回答,非常有幫助,我真的很感激。

我期待一個更簡單的方法來整合這個,但似乎沒有直接的解決方案。

順便說一句,我已經找到了爲什麼Tomcat Docker容器中的webapp目錄總是空的,似乎我的webapp主機路徑(Windows)必須位於我的用戶目錄下,類似於/ c/users /用戶名/文件/....../ eclipseWorkspace/mywebappProject /目標/ mywebapp。

目前我認爲我將啓用遠程調試,所以我將有熱代碼替換每當我修改一個Java類,後來看看有什麼可以與其他類型的文件來完成。

關於當maven刪除目標文件夾時提到的問題,我已經檢查過,如果我從Eclipse運行一個maven clean(如你所說),webapp被取消了,但是如果我做了一個maven安裝, Tomcat Docker Container,所以也許並不是那麼糟糕。

相關問題