From ce5a5e951b657d60d8de1349e03dd31ae9d9a07b Mon Sep 17 00:00:00 2001 From: Jonas Natten <jonas.natten@knowit.no> Date: Fri, 10 Nov 2023 13:42:37 +0100 Subject: [PATCH] Add support for passing `JAVA_OPTS` to docker images This allows us to be a bit more dynamic with heapsize and such without rebuilding/re-releasing every time we want to update, or try something new. --- project/Module.scala | 13 ++++--------- project/imageapi.scala | 2 +- project/searchapi.scala | 2 +- 3 files changed, 6 insertions(+), 11 deletions(-) diff --git a/project/Module.scala b/project/Module.scala index 050d6710d8..aae86bb618 100644 --- a/project/Module.scala +++ b/project/Module.scala @@ -128,25 +128,20 @@ trait Module { "--add-opens=java.desktop/java.awt=ALL-UNNAMED" ) - def dockerSettings(extraJavaOpts: String*): Seq[Def.Setting[_]] = { + def dockerSettings(): Seq[Def.Setting[_]] = { Seq( docker := (docker dependsOn assembly).value, docker / dockerfile := { val artifact = (assembly / assemblyOutputPath).value val artifactTargetPath = s"/app/${artifact.name}" - val entry = Seq( - "java", - "-Dorg.scalatra.environment=production" - ) ++ - reflectiveAccessOptions ++ - extraJavaOpts ++ - Seq("-jar", artifactTargetPath) + val entry = + s"java -Dorg.scalatra.environment=production $$JAVA_OPTS ${reflectiveAccessOptions.mkString(" ")} -jar $artifactTargetPath" new Dockerfile { from("eclipse-temurin:20-jdk") add(artifact, artifactTargetPath) - entryPoint(entry: _*) + entryPointRaw(entry) } }, docker / imageNames := Seq( diff --git a/project/imageapi.scala b/project/imageapi.scala index 612d667499..4e34bdefc1 100644 --- a/project/imageapi.scala +++ b/project/imageapi.scala @@ -64,7 +64,7 @@ object imageapi extends Module { libraryDependencies ++= dependencies ) ++ commonSettings ++ - dockerSettings("-Xmx6G") ++ + dockerSettings() ++ tsSettings ++ assemblySettings() diff --git a/project/searchapi.scala b/project/searchapi.scala index be1a2a7d70..6fbd043067 100644 --- a/project/searchapi.scala +++ b/project/searchapi.scala @@ -55,7 +55,7 @@ object searchapi extends Module { ) ++ commonSettings ++ assemblySettings() ++ - dockerSettings("-Xmx6G") ++ + dockerSettings() ++ tsSettings override lazy val plugins: Seq[sbt.Plugins] = Seq(