【问题标题】:Setup logging/config for production with deb file and SBT使用 deb 文件和 SBT 为生产设置日志记录/配置
【发布时间】:2014-01-11 04:43:01
【问题描述】:

我正在寻找在我的 deb 文件中使用 sbt-native-packager 在生产环境中设置日志记录/配置的最佳方式。

a.) 我想将我的 reference.conflogback.xml 从我的代码存储库复制到 /etc/my-app/reference.conf/etc/my-app/logback.xml我猜linuxPackageMappings 可能会以某种方式实现,但我还没有找到示例,我仍在努力了解 SBT 和插件如何协同工作。

b.) 我需要告诉我的 jvm,当通过创建的 upstart 启动时我应该使用这个配置和这个 logback 配置 - 我如何将参数从 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"))

谢谢

【问题讨论】:

    标签: scala debian sbt sbt-native-packager


    【解决方案1】:

    a) 日志输出见this question。配置输入可以很容易地完成

    mappings in Universal <+= (packageBin in Compile, baseDirectory ) map { (_, base) =>
        val conf = base / "conf" / "reference.conf"
        conf -> "conf/application.conf"
    } 
    

    按照惯例,Universal 打包会在 conf 文件夹中定义配置文件。对于 debian,这会自动映射到 /etc/your-app/filename

    b) 向脚本传递参数也是通过配置文件完成的。使用 0.7.0-M3 并按照说明here 并查看etc-default template

    【讨论】:

      【解决方案2】:

      听到很多问题...

      a) 所以你可以通过将它们包含在你的 debian 包中来安装你的 conf 和 xml 文件。构建 debian 软件包不是内置于 sbt 开箱即用的。您可以尝试https://github.com/sbt/sbt-native-packager,但您最好退出 sbt 并仅使用许多常规方法之一来创建 debian 包。

      请注意,您不应该在 linux 机器上登录 /etc。日志应该放在 /var

      b) 你可以安装一个带有 -D 参数的初始化脚本来告诉 play 在哪里可以找到它的 conf 和 logback.xml 文件。

      $JAVA_HOME/bin/java -Dconfig.file=/etc/foo.comf -Dlogger.file=/etc/logger.xml

      c) 你应该登录到 /var 下的某个目录

      您可以在作为 debian 软件包一部分的 postinst 脚本中创建目录。 puppet(或类似的东西)可能是管理已部署盒子上的配置文件的更好方法。

      【讨论】:

      • 谢谢马克。我已经在使用 sbt-native-packager(我将编辑我以前的帖子)。这个问题几乎是针对 sbt-native-package 的,它将创建 init 脚本设置 deb 文件的路径..
      • 如果您可以发布您的 build.scala,听到有人可以帮助您了解详细信息。
      猜你喜欢
      • 1970-01-01
      • 2014-01-07
      • 2016-06-16
      • 2018-05-05
      • 2010-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多