2017-04-26 61 views
1

我正在嘗試將我的應用程序部署到Docker容器內的Tomcat服務器。 我正在使用Intellj IDEA,並將它與以下設備配合使用: - JMX配置的tomcat遠程連接器,以及我的電腦和容器之間的共享文件夾。Tomcat與Intellj遠程部署IDEA

但我有一個很大的問題,那就是位於我的應用程序的META-INF context.xml中沒有部署在服務器上,雖然我有copyXML和deployXML

Intellj理念讓我複製一個版本在我的上下文中,它添加了一個docBase應答器,但只在我的應用程序中。

我怎樣才能讓我的tomcat服務器複製或部署我的context.xml,在哪裏定義了我的數據源?

在此先感謝。

回答

1

在IDEA 16.3及之前的版本中,遠程部署到Tomcat會忽略context.xml(這由https://youtrack.jetbrains.com/issue/IDEA-150430覆蓋)。

它已被修復爲IDEA 17.1,因此對於此版本,Tomcat遠程運行配置的「遠程登臺」部分應該具有'context.xml'子部分和'從根路徑'字段。

您可能會嘗試從Docker容器共享文件夾'< tomcat base >/conf/Catalina/localhost',因此此文件夾和暫存文件夾將位於同一父文件夾下。

然後,您應該分別在遠程登臺 - >主機設置中指定父文件夾,並在文件夾的相對路徑中分別指定爲'context.xml'和'Staging'部分中的'根路徑'。

0

我已經將webapps聲明爲圖像中的卷,然後在容器啓動時將內容複製到該文件夾​​中。

所以我最終用我的默認webapps文件安裝文件夾。 但是,當我將idea和xml部署到webapps文件夾時,它失敗了,因爲我的上下文沒有部署。 但是,如果我只是重新啓動碼頭與我的戰爭和XML仍然在掛載的文件夾,然後它的作品。如果使用IDEA重新部署以使用JMX連接到我的應用程序,它也可以工作。

但它有點爛,而靜態資源的副本不適合我,因爲路徑根目錄是「webapps /../」,而我仍然無法找到改變它的地方。

我不明白爲什麼在Docker上使用IDEA進行熱部署非常困難。

我想我必須回去使用插件remoteSynchronizer來複制.classes和資源,以保持我的web應用程序是最新的,但它遠不如Eclipse的FileSync插件。