我正在使用sbt-native-packager搜索在我的deb文件中设置生产中的日志/配置的最佳方式。
a。)我想将我的reference.conf
和logback.xml
从我的代码存储库复制到/etc/my-app/reference.conf
或/etc/my-app/logback.xml
。 我猜这可能与linuxPackageMappings
有关,但我还是找不到一个例子,我仍然在努力弄清楚SBT和插件是如何协同工作的。
b。)我需要告诉我的jvm我应该使用这个配置和这个logback配置,当通过创建的upstart启动时 - 如何将参数从build.scala传递给jvm-runscript
这是我目前的项目:
lazy val root = Project(id = appName, base = file("."), settings = JavaServerAppPackaging.settings ++ packageSettings ++ allSettings ++ Project.defaultSettings)
lazy val allSettings = Seq(
resolvers += "Typesafe Releases" at "http://repo.typesafe.com/typesafe/releases",
resolvers += "Sonatype OSS Snapshots" at "http://oss.sonatype.org/content/repositories/snapshots/",
libraryDependencies ++= dependencies)
lazy val packageSettings = packageArchetype.java_server ++ Seq(
bashScriptExtraDefines := Seq("aha"),
version := appVersion,
packageSummary := appName,
packageDescription := appName,
maintainer := appAuthor,
debianPackageDependencies in Debian ++= Seq("openjdk-7-jre-headless"))
感谢
答案 0 :(得分:2)
a)有关日志记录输出,请参阅this question。配置输入可以通过
轻松完成mappings in Universal <+= (packageBin in Compile, baseDirectory ) map { (_, base) =>
val conf = base / "conf" / "reference.conf"
conf -> "conf/application.conf"
}
按照惯例,通用打包定义了 conf 文件夹中的配置文件。对于debian,这会自动映射到 / etc / your-app / filename
b)也可以通过配置文件将参数传递给脚本。使用 0.7.0-M3 并按照here的说明操作并查看etc-default template
答案 1 :(得分:0)
听到很多问题......
a)因此,您可以通过将它们包含在debian软件包中来安装conf和xml文件。构建debian软件包并不是开箱即用的。你可以尝试https://github.com/sbt/sbt-native-packager,但你可能最好退出sbt并使用众多正常方法中的一种来创建debian包。
请注意,您不应该在Linux机器上登录/ etc。日志应该在/ var
下b)你可以安装一个带有-D peramiters的init脚本来告诉play在哪里找到它的conf和logback.xml文件。
$ JAVA_HOME / bin / java -Dconfig.file = / etc / foo.comf -Dlogger.file = / etc / logger.xml
c)您应该登录到/ var
下的某个目录您可以在postinst脚本中创建目录,该脚本是debian包的一部分。 puppet(或类似的东西)可能是在部署的盒子上管理配置文件的更好方法。