webassets在sbt组装的胖子罐(docker)上不起作用

时间:2019-06-07 16:29:14

标签: scala docker playframework sbt

静态文件在“ sbt运行”中运行良好。但是它在由sbt程序集构建的docker中不起作用。

我正在使用Play 2.5.12,我只需要提供一个静态文件,因此我将文件添加到公用文件夹并在route.conf上添加路由,如下所示。

获取/googlee.html controllers.Assets.at(path =“ / public”,file =“ google.html”)

如果我打开带有“ sbt run”的应用程序,它将很好地工作。 但是当我在docker上启动它时,它不起作用。

我将日志级别更新为DEBUG,但是它没有显示任何有关该错误的信息。 我猜这是关于“ sbt程序集”的问题,但是我不知道是什么原因引起的。

以下是有关build.sbt中“ sbt程序集”的摘要

assemblyJarName in assembly := "my-app" + "-assembly.jar",
assemblyMergeStrategy in assembly := {
  case PathList("newrelic-agent") => MergeStrategy.discard
  case PathList(ps @ _*) if ps.last endsWith ".class" => MergeStrategy.first
  case PathList(ps @ _*) if ps.last endsWith ".java"  => MergeStrategy.first
  case PathList(ps @ _*) if ps.last endsWith ".yaml"  => MergeStrategy.first
  case PathList(ps @ _*) if ps.last endsWith ".yml"  => MergeStrategy.first
  case PathList(ps @ _*) if ps.last endsWith "excludes"  => MergeStrategy.first
  case PathList(ps @ _*) if ps.last endsWith ".txt"  => MergeStrategy.first
  case PathList(ps @ _*) if ps.last endsWith ".properties"  => MergeStrategy.first
  case PathList(ps @ _*) if ps.last endsWith ".json"  => MergeStrategy.first
  case PathList(ps @ _*) if ps.last endsWith ".jar"   => MergeStrategy.first
  case PathList(ps @ _*) if ps.last endsWith ".html"  => MergeStrategy.first
  case "application.conf"                             => MergeStrategy.concat
  case "CHANGELOG"                                    => MergeStrategy.discard
  case manifest if manifest.contains("MANIFEST.MF")   => MergeStrategy.discard
  case x =>
    val oldStrategy = (assemblyMergeStrategy in assembly).value
    oldStrategy(x)
},

0 个答案:

没有答案