使用Intellj IDEA进行Tomcat远程部署

我正在尝试将我的应用程序部署到Docker容器中的Tomcat服务器上。 我正在使用Intellj IDEA,并且使用了以下工具: – configuration了JMX的tomcat远程连接器,以及我的电脑和容器之间的共享文件夹。

但我有一个大问题,位于我的应用程序的META-INF中的context.xml没有部署在服务器上,虽然我有copyXML和deployXML

Intellj Idea允许我在添加docBase应答器的情况下复制我的上下文版本,但仅在我的应用程序中。

我如何可以让我的tomcat服务器复制或部署我的context.xml,我有我的数据源定义?

提前致谢。

在IDEA 16.3及以前版本中,远程部署到Tomcat将忽略context.xml( https://youtrack.jetbrains.com/issue/IDEA-150430包含此内容)。

它已经被修正为IDEA 17.1,所以对于这个版本,Tomcat远程运行configuration的“远程登台”部分应该具有“从根path”字段的“context.xml”子部分。

你可以尝试从你的Docker容器中共享文件夹'<tomcat base> / conf / Catalina / localhost',这样这个文件夹和临时文件夹将在本地位于同一个父文件夹下。

然后,您应该分别在远程登台 – >主机设置中指定父文件夹,并在文件夹中指定文件夹的相对path,分别为“context.xml”和“Staging”部分中的“来自根目录的path”。

我已经声明webapps作为一个卷在我的形象,然后我复制内容到该文件夹​​容器启动时。

所以我最终用我的默认webapps文件安装文件夹。 但是,当我将war和xml部署到webapps文件夹中时,会失败,因为我的上下文没有部署。 但是,如果我只是重新启动docker与我的战争和XML仍然在挂载的文件夹中,那么它的工作原理。 如果用IDEA重新部署以连接到我的应用程序与JMX它也可以。

但它有点烂,静态资源副本不为我工作,因为path根目录是“webapps /../”,我不反对改变它。

我不明白为什么在Docker上用IDEA进行热部署非常困难。

我想我将不得不回头使用插件remoteSynchronizer复制.class和资源,以保持我的web应用程序是最新的,但它远没有工作,以及用于Eclipse的FileSync插件。