我正在玩Play! 2.5。当我运行我的应用程序时,我使用-mem 4000运行它。如何将此选项发送到我使用activator docker:publish
创建的Docker镜像?我查看了activator show dockerCommands
指定的命令,我看到ENTRYPOINT是bin / myappname - 我可以编辑它以在那里添加-mem 4000吗?或者我需要使用-Xmx和-Xms?我是否将这些选项放在其他地方?我看过一些对application.ini文件的引用,但我不确定将它放在Play!应用程序中。
答案 0 :(得分:1)
在具有ENTRYPOINT
的普通Dockerfile中,您可以使用CMD
指定传递给入口点命令的选项。
ENTRYPOINT ["bin/myappname"]
CMD [ "-mem", "4000" ]
抱歉,我不是斯卡拉人,也不知道如何将其应用于sbt / activator / play生成器,尽管the dockerCommands
section here似乎也很有用,this Codacy blog post。< / p>
让我们通过添加:
覆盖build.sbt中的dockerComandsdockerCommands := dockerCommands.value.flatMap{ case cmd@Cmd(“FROM”,_) => List(cmd, Cmd(“RUN”, “apk update && apk add bash”)) case other => List(other) } }
可能
dockerCommands := dockerCommands.value.flatMap{
case cmd@ExecCmd("ENTRYPOINT",_) => List(cmd, ExecCmd("CMD", """[ "-mem", "4000" ]"""))
case other => List(other) }
}
答案 1 :(得分:1)
我进一步探讨了sbt-native-packager文档,在Recipes下,找到了一个关于Play的部分。不那么混乱(对我来说,无论如何)这样做的方法是添加:
javaOptions in Universal ++= Seq(
// JVM memory tuning
"-J-Xmx4000m",
"-J-Xms512m"
)