【发布时间】:2012-04-05 04:00:01
【问题描述】:
Kunagi 是一个简单的 Java Web 应用程序,我们已经为其用户创建了一个二进制 .deb 包。这个包依赖于tomcat6,只是将.war文件放入/var/lib/tomcat6/webapps。这在 Debian 和 Ubuntu 上运行良好。
现在我想创建一个可以集成到 Debian 的真实源代码包。可悲的是我找不到任何教程。有很多关于 CDBS、DH7 或 javahelper 等工具及其命令的零碎信息。但是我应该使用哪一个?
我还有一些概念性的问题:
通常,通过将 webapp 复制到 web 容器的
webapps目录来安装 web 应用程序。那么让我的包依赖tomcat6并将我的webapp直接安装到/var/lib/tomcat6/webapps中是否正确?还是应该像其他服务一样将我的 webapp 安装在其他地方,提供单独的 Tomcat 配置并由自己的用户运行?我的 web 应用程序使用来自其他项目的库 (JAR)。通常这些都放在 webapp 目录的
WEB-INF/lib子目录中。由于 Debian 不允许在包中包含库,因此将这些项目作为依赖项添加到我的包中并在我的WEB-INF/lib目录中创建符号链接是否正确?或者我该如何解决这个问题?我的 webapp 需要写入文件(应用程序数据)。由于 Tomcat 在 Debian 上以用户
www-data运行,因此我的 webapp 可以写入的唯一目录是/var/lib/tomcat6/webapps。它是放置我的数据的正确位置吗?或者我的包是否应该创建类似/var/lib/my-webapp-name/的内容并为用户www-data授予写入权限?
【问题讨论】:
-
在这里向 debian 开发人员告知这个问题的最佳方式是什么?
-
你有一个 deb 包来对 tomcat 进行战争。你能分享一下吗?我们正在尝试做同样的事情。
-
真的需要.deb包吗?您可以使用 tomcat 和您的 web 应用程序创建 docker conatiner (docker.com)。容器就像虚拟机一样工作,bud docker 让您轻松进行更改并共享它。您的客户只需要从 Debian 存储库安装 docker 并运行一个命令即可下载并运行您的容器。如果这可以被视为一种解决方案,我可以给你一个例子。你的容器可以已经嵌入了tomcat,你可以只修改这个公共容器镜像(hub.docker.com/_/tomcat)。
-
我不希望我的用户必须安装 docker 才能使用我的应用程序。我希望他们只是点击我的包,就像它在现代应用商店中一样。可悲的是,这对 Debian 来说几乎是不可能的 :-(
标签: java web-applications debian packaging