使用sbt docker的javaOptions:publishLocal和docker run

时间:2016-09-08 22:28:29

标签: docker sbt sbt-docker

如果我运行我的应用程序没有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生效?

2 个答案:

答案 0 :(得分:1)

找到一个解决方法。您可以这样设置dockerEntrypoint

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

答案 1 :(得分:0)

javaOptions可以通过

提供给sbt-native-packager
javaOptions in Universal ++= Seq(
  // -J params will be added as jvm parameters
  "-J-Xmx2048m",
  "-J-Xms256m"
)

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