Java 将web应用程序Dockerize(WAR)是一个很好的实践?

Java 将web应用程序Dockerize(WAR)是一个很好的实践?,java,spring,docker,tomcat,Java,Spring,Docker,Tomcat,目前,我的web应用程序(java+spring+mavenproject)正在以WAR格式生成,并部署在运行Tomcat的Docker容器中 我的问题是: 使用Tomcat和WAR部署一个容器是一种好的做法吗 在没有Tomcat的情况下,是否有可能以JAR格式部署web应用程序以使其更轻?这样做明智吗 我试着将其作为JAR运行-java-JAR-mypersonalproject.JAR 但是我需要定义清单获取此错误: 在mypersonalproject.jar中没有主清单属性。问题是我

目前,我的web应用程序(
java
+
spring
+
maven
project)正在以
WAR
格式生成,并部署在运行
Tomcat
Docker
容器中

我的问题是:

  • 使用Tomcat和WAR部署一个容器是一种好的做法吗
  • 在没有Tomcat的情况下,是否有可能以JAR格式部署web应用程序以使其更轻?这样做明智吗
我试着将其作为JAR运行-
java-JAR-mypersonalproject.JAR
但是我需要定义清单获取此错误:
在mypersonalproject.jar中没有主清单属性
。问题是我不知道哪个是主类(我尝试搜索主类,但测试类中只有一个)

使用Tomcat和WAR部署一个容器是一种好的做法吗

这可能是基于观点的。集装箱预计能够尽快启动,而且重量不会太重,这就是为什么在Docker内部使用Tomcat可能会感到有点矛盾,但我不会说这是一种不好的做法。Tomcat服务器可以快速启动

在没有Tomcat的情况下,是否有可能以JAR格式部署web应用程序以使其更轻?这样做明智吗

是的,这是可能的。不过,您仍然需要一个Web服务器来公开您的应用程序。一种流行的方法是“嵌入”Web服务器(例如Jetty或Netty)。有些框架可以像SpringBoot那样“自动”为您做到这一点