【问题标题】:Dockerize a web app (WAR) is a good practise? [closed]Dockerize 一个 Web 应用程序 (WAR) 是一个好习惯吗? [关闭]
【发布时间】:2021-06-06 17:27:43
【问题描述】:
目前,我的 Web 应用程序(java + spring + maven 项目)以 WAR 格式生成并部署在运行 Tomcat 的 Docker 容器中。
我的问题是:
- 部署一个带有 Tomcat 和 WAR 的容器是一种好习惯吗?
- 是否可以在没有 Tomcat 的情况下以 JAR 格式部署 Web 应用程序以使其更轻巧?可取吗?
我尝试将其作为 JAR 运行 - java -jar mypersonalproject.jar
但我需要定义清单得到这个错误:
no main manifest attribute, in mypersonalproject.jar。问题是我不知道哪个是主类(我试图搜索主类,但测试类中只有一个)。
【问题讨论】:
标签:
java
spring
docker
tomcat
【解决方案1】:
部署一个带有 Tomcat 和 WAR 的容器是一种好习惯吗?
这可能是基于意见的。容器应该能够尽快启动,并且不会太重,这就是为什么在 Docker 中使用 Tomcat 可能会感觉有点矛盾但我不会说这是一个不好的做法。 Tomcat 服务器可以快速启动。
是否可以在没有 Tomcat 的情况下以 JAR 格式部署 Web 应用程序以使其更轻巧?可取吗?
是的,这是可能的。不过,您仍然需要一个网络服务器来公开您的应用程序。一种流行的方法是“嵌入”网络服务器(例如 Jetty 或 Netty)。有些框架可以像 Spring Boot 一样“自动”为您做到这一点。