1

如果我在没有 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不会生效。

我怎样才能让这些javaOptions生效时我docker run

4

2 回答 2

2

找到了一个变通的答案。你可以dockerEntrypoint这样设置:

// build.sbt
dockerEntrypoint := Seq("bin/myapp", "-Dconfig.file=conf/application.prod.conf", "-Dlogger.resource=logback.prod.xml")
于 2016-09-09T13:25:43.723 回答
0

javaOptions可以提供sbt-native-packager

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

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

于 2018-06-12T14:11:32.583 回答