【问题标题】:javaOptions with sbt docker:publishLocal and docker run带有 sbt docker:publishLocal 和 docker run 的 javaOptions
【发布时间】:2017-01-16 23:41:14
【问题描述】:

如果我在没有 Docker 的情况下运行我的应用程序,我会这样做:

./myapp -Dconfig.file=conf/application.prod.conf -Dlogger.resource=logback.prod.xml

其实我可以做得更好,把它们放到build.sbt文件里:

// Production Mode
javaOptions in Production ++= Seq(
  "-Dconfig.file=conf/application.prod.conf",
  "-Dlogger.resource=logback.prod.xml"
)

然后它们将在我运行我的应用程序时应用:

./myapp  # options now applied via build.sbt

当我使用sbt docker:publishLocal 构建我的应用程序,然后使用 docker run 运行它时,javaOptions 不会生效。

当我docker run时如何让这些javaOptions生效?

【问题讨论】:

    标签: docker sbt sbt-docker


    【解决方案1】:

    找到了解决方法。您可以像这样设置dockerEntrypoint

    // build.sbt
    dockerEntrypoint := Seq("bin/myapp", "-Dconfig.file=conf/application.prod.conf", "-Dlogger.resource=logback.prod.xml")
    

    【讨论】:

      【解决方案2】:

      javaOptions 可以提供给sbt-native-packager

      javaOptions in Universal ++= Seq(
        // -J params will be added as jvm parameters
        "-J-Xmx2048m",
        "-J-Xms256m"
      )
      

      请注意,这些选项将应用于所有生成的包(Debian、Rpm 等),而不仅仅是 Docker。见讨论here

      【讨论】:

        猜你喜欢
        • 2014-09-10
        • 2019-08-17
        • 1970-01-01
        • 2016-01-28
        • 2021-10-22
        • 2015-03-26
        • 1970-01-01
        • 2023-02-08
        • 2021-06-29
        相关资源
        最近更新 更多