From 4c702e7300acd25e6cb020004dc2d7cefe90ed18 Mon Sep 17 00:00:00 2001 From: Natalie Coley Date: Thu, 8 Jan 2026 18:19:59 -0800 Subject: [PATCH 1/4] Use explicit openjdk:8 tag --- .../scala/com/typesafe/sbt/packager/docker/DockerPlugin.scala | 2 +- src/sbt-test/docker/file-permission/build.sbt | 2 +- src/sbt-test/docker/jdk-versions/build.sbt | 2 +- src/sbt-test/docker/override-commands/build.sbt | 2 +- src/sphinx/formats/docker.rst | 4 ++-- test-project-docker/build.sbt | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/scala/com/typesafe/sbt/packager/docker/DockerPlugin.scala b/src/main/scala/com/typesafe/sbt/packager/docker/DockerPlugin.scala index 421666a83..7016389ba 100644 --- a/src/main/scala/com/typesafe/sbt/packager/docker/DockerPlugin.scala +++ b/src/main/scala/com/typesafe/sbt/packager/docker/DockerPlugin.scala @@ -81,7 +81,7 @@ object DockerPlugin extends AutoPlugin { // run validation, and warn the build users if the strategy is not compatible with `docker` that's in scope. dockerPermissionStrategy := DockerPermissionStrategy.MultiStage, dockerChmodType := DockerChmodType.UserGroupReadExecute, - dockerBaseImage := "openjdk:8", + dockerBaseImage := "openjdk:8u342", dockerExposedPorts := Seq(), dockerExposedUdpPorts := Seq(), dockerExposedVolumes := Seq(), diff --git a/src/sbt-test/docker/file-permission/build.sbt b/src/sbt-test/docker/file-permission/build.sbt index b54a88155..f5f98accd 100644 --- a/src/sbt-test/docker/file-permission/build.sbt +++ b/src/sbt-test/docker/file-permission/build.sbt @@ -79,7 +79,7 @@ lazy val root = (project in file(".")) val lines = dockerfile.linesIterator.toList assertEquals( lines, - """FROM openjdk:8 AS mainstage + """FROM openjdk:8u342 AS mainstage |USER root |RUN id -u demiourgos728 1>/dev/null 2>&1 || (( getent group 0 1>/dev/null 2>&1 || ( type groupadd 1>/dev/null 2>&1 && groupadd -g 0 root || addgroup -g 0 -S root )) && ( type useradd 1>/dev/null 2>&1 && useradd --system --create-home --uid 1001 --gid 0 demiourgos728 || adduser -S -u 1001 -G root demiourgos728 )) |WORKDIR /opt/docker diff --git a/src/sbt-test/docker/jdk-versions/build.sbt b/src/sbt-test/docker/jdk-versions/build.sbt index 5b02efec7..11d035374 100644 --- a/src/sbt-test/docker/jdk-versions/build.sbt +++ b/src/sbt-test/docker/jdk-versions/build.sbt @@ -7,7 +7,7 @@ lazy val `jdk8` = project .enablePlugins(JavaAppPackaging) .settings( name := basename + "-8", - dockerBaseImage := "openjdk:8u162-jre", + dockerBaseImage := "openjdk:8u342-jre", dockerBuildOptions := dockerBuildOptions.value ++ Seq("-t", "jdk-versions:8") ) diff --git a/src/sbt-test/docker/override-commands/build.sbt b/src/sbt-test/docker/override-commands/build.sbt index 07ac65650..d645fdda2 100644 --- a/src/sbt-test/docker/override-commands/build.sbt +++ b/src/sbt-test/docker/override-commands/build.sbt @@ -9,7 +9,7 @@ maintainer := "Gary Coady " dockerUpdateLatest := true dockerCommands := Seq( - Cmd("FROM", "openjdk:8"), + Cmd("FROM", "openjdk:8u342"), Cmd("LABEL", s"""MAINTAINER="${maintainer.value}""""), ExecCmd("CMD", "echo", "Hello, World from Docker") ) diff --git a/src/sphinx/formats/docker.rst b/src/sphinx/formats/docker.rst index f507d4047..4c715e6e0 100644 --- a/src/sphinx/formats/docker.rst +++ b/src/sphinx/formats/docker.rst @@ -337,7 +337,7 @@ In your sbt console type .. code-block:: bash > show dockerCommands - [info] List(Cmd(FROM,openjdk:8), Cmd(LABEL,MAINTAINER=Your Name ), ...) + [info] List(Cmd(FROM,openjdk:8u342), Cmd(LABEL,MAINTAINER=Your Name ), ...) @@ -405,7 +405,7 @@ Now let's start adding some Docker commands. import com.typesafe.sbt.packager.docker._ dockerCommands := Seq( - Cmd("FROM", "openjdk:8"), + Cmd("FROM", "openjdk:8u342"), Cmd("LABEL", s"""MAINTAINER="${maintainer.value}""""), ExecCmd("CMD", "echo", "Hello, World from Docker") ) diff --git a/test-project-docker/build.sbt b/test-project-docker/build.sbt index fa298560a..a7f78a3b1 100644 --- a/test-project-docker/build.sbt +++ b/test-project-docker/build.sbt @@ -4,7 +4,7 @@ name := "docker-test" version := "0.1.0" maintainer := "Gary Coady " -dockerBaseImage := "openjdk:8-jre-alpine" +dockerBaseImage := "openjdk:8u342-jre-alpine" dockerUpdateLatest := true dockerBuildxPlatforms := Seq("linux/arm64/v8", "linux/amd64") dockerUsername := Some("dswiecki") From f2baceef77180c79a2a47cc09afc262ab51de26b Mon Sep 17 00:00:00 2001 From: Natalie Coley Date: Fri, 9 Jan 2026 09:10:22 -0800 Subject: [PATCH 2/4] use explicit tags for openjdk 9 & 10 (also deprecated) --- src/sbt-test/docker/jdk-versions/build.sbt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sbt-test/docker/jdk-versions/build.sbt b/src/sbt-test/docker/jdk-versions/build.sbt index 11d035374..99fd335c2 100644 --- a/src/sbt-test/docker/jdk-versions/build.sbt +++ b/src/sbt-test/docker/jdk-versions/build.sbt @@ -16,7 +16,7 @@ lazy val `jdk9` = project .enablePlugins(JavaAppPackaging) .settings( name := basename + "-9", - dockerBaseImage := "openjdk:9.0.4-jre", + dockerBaseImage := "openjdk:9.0.4-12-jre", dockerBuildOptions := dockerBuildOptions.value ++ Seq("-t", "jdk-versions:9") ) @@ -25,6 +25,6 @@ lazy val `jdk10` = project .enablePlugins(JavaAppPackaging) .settings( name := basename + "-10", - dockerBaseImage := "openjdk:10-jre", + dockerBaseImage := "openjdk:10.0.2-13-jre", dockerBuildOptions := dockerBuildOptions.value ++ Seq("-t", "jdk-versions:10") ) From cf40f3a14192a3c6a052150fac73dfc731d94fc6 Mon Sep 17 00:00:00 2001 From: Natalie Coley Date: Fri, 9 Jan 2026 11:41:04 -0800 Subject: [PATCH 3/4] upgrade to eclipse-temurin:25, replace jdk 9 & 10 with 11 & 17 for tests --- .../sbt/packager/docker/DockerPlugin.scala | 2 +- src/sbt-test/docker/file-permission/build.sbt | 2 +- src/sbt-test/docker/jdk-versions/build.sbt | 41 ++++++++++++++----- .../src/main/scala/Hello.scala | 2 +- .../src/main/scala/Hello.scala | 2 +- .../jdk21/src/main/scala/Hello.scala | 3 ++ .../jdk25/src/main/scala/Hello.scala | 3 ++ src/sbt-test/docker/jdk-versions/test | 14 +++++-- .../docker/override-commands/build.sbt | 2 +- src/sphinx/formats/docker.rst | 4 +- test-project-docker/build.sbt | 2 +- 11 files changed, 54 insertions(+), 23 deletions(-) rename src/sbt-test/docker/jdk-versions/{jdk10 => jdk11}/src/main/scala/Hello.scala (52%) rename src/sbt-test/docker/jdk-versions/{jdk9 => jdk17}/src/main/scala/Hello.scala (52%) create mode 100644 src/sbt-test/docker/jdk-versions/jdk21/src/main/scala/Hello.scala create mode 100644 src/sbt-test/docker/jdk-versions/jdk25/src/main/scala/Hello.scala diff --git a/src/main/scala/com/typesafe/sbt/packager/docker/DockerPlugin.scala b/src/main/scala/com/typesafe/sbt/packager/docker/DockerPlugin.scala index 7016389ba..c2bfe64bf 100644 --- a/src/main/scala/com/typesafe/sbt/packager/docker/DockerPlugin.scala +++ b/src/main/scala/com/typesafe/sbt/packager/docker/DockerPlugin.scala @@ -81,7 +81,7 @@ object DockerPlugin extends AutoPlugin { // run validation, and warn the build users if the strategy is not compatible with `docker` that's in scope. dockerPermissionStrategy := DockerPermissionStrategy.MultiStage, dockerChmodType := DockerChmodType.UserGroupReadExecute, - dockerBaseImage := "openjdk:8u342", + dockerBaseImage := "eclipse-temurin:25", dockerExposedPorts := Seq(), dockerExposedUdpPorts := Seq(), dockerExposedVolumes := Seq(), diff --git a/src/sbt-test/docker/file-permission/build.sbt b/src/sbt-test/docker/file-permission/build.sbt index f5f98accd..07a3ca21f 100644 --- a/src/sbt-test/docker/file-permission/build.sbt +++ b/src/sbt-test/docker/file-permission/build.sbt @@ -79,7 +79,7 @@ lazy val root = (project in file(".")) val lines = dockerfile.linesIterator.toList assertEquals( lines, - """FROM openjdk:8u342 AS mainstage + """FROM eclipse-temurin:25 AS mainstage |USER root |RUN id -u demiourgos728 1>/dev/null 2>&1 || (( getent group 0 1>/dev/null 2>&1 || ( type groupadd 1>/dev/null 2>&1 && groupadd -g 0 root || addgroup -g 0 -S root )) && ( type useradd 1>/dev/null 2>&1 && useradd --system --create-home --uid 1001 --gid 0 demiourgos728 || adduser -S -u 1001 -G root demiourgos728 )) |WORKDIR /opt/docker diff --git a/src/sbt-test/docker/jdk-versions/build.sbt b/src/sbt-test/docker/jdk-versions/build.sbt index 99fd335c2..ea12956ad 100644 --- a/src/sbt-test/docker/jdk-versions/build.sbt +++ b/src/sbt-test/docker/jdk-versions/build.sbt @@ -7,24 +7,43 @@ lazy val `jdk8` = project .enablePlugins(JavaAppPackaging) .settings( name := basename + "-8", - dockerBaseImage := "openjdk:8u342-jre", + dockerBaseImage := "eclipse-temurin:8", dockerBuildOptions := dockerBuildOptions.value ++ Seq("-t", "jdk-versions:8") ) -lazy val `jdk9` = project - .in(file("jdk9")) +lazy val `jdk11` = project + .in(file("jdk11")) .enablePlugins(JavaAppPackaging) .settings( - name := basename + "-9", - dockerBaseImage := "openjdk:9.0.4-12-jre", - dockerBuildOptions := dockerBuildOptions.value ++ Seq("-t", "jdk-versions:9") + name := basename + "-11", + dockerBaseImage := "eclipse-temurin:11", + dockerBuildOptions := dockerBuildOptions.value ++ Seq("-t", "jdk-versions:11") ) -lazy val `jdk10` = project - .in(file("jdk10")) +lazy val `jdk17` = project + .in(file("jdk17")) .enablePlugins(JavaAppPackaging) .settings( - name := basename + "-10", - dockerBaseImage := "openjdk:10.0.2-13-jre", - dockerBuildOptions := dockerBuildOptions.value ++ Seq("-t", "jdk-versions:10") + name := basename + "-17", + dockerBaseImage := "eclipse-temurin:17", + dockerBuildOptions := dockerBuildOptions.value ++ Seq("-t", "jdk-versions:17") + ) + +lazy val `jdk21` = project + .in(file("jdk21")) + .enablePlugins(JavaAppPackaging) + .settings( + name := basename + "-21", + dockerBaseImage := "eclipse-temurin:21", + dockerBuildOptions := dockerBuildOptions.value ++ Seq("-t", "jdk-versions:21") + ) + + +lazy val `jdk25` = project + .in(file("jdk25")) + .enablePlugins(JavaAppPackaging) + .settings( + name := basename + "-25", + dockerBaseImage := "eclipse-temurin:25", + dockerBuildOptions := dockerBuildOptions.value ++ Seq("-t", "jdk-versions:25") ) diff --git a/src/sbt-test/docker/jdk-versions/jdk10/src/main/scala/Hello.scala b/src/sbt-test/docker/jdk-versions/jdk11/src/main/scala/Hello.scala similarity index 52% rename from src/sbt-test/docker/jdk-versions/jdk10/src/main/scala/Hello.scala rename to src/sbt-test/docker/jdk-versions/jdk11/src/main/scala/Hello.scala index acd57d1be..197bd48eb 100644 --- a/src/sbt-test/docker/jdk-versions/jdk10/src/main/scala/Hello.scala +++ b/src/sbt-test/docker/jdk-versions/jdk11/src/main/scala/Hello.scala @@ -1,3 +1,3 @@ object Hello extends App { - println("Hello JDK10!") + println("Hello JDK11!") } diff --git a/src/sbt-test/docker/jdk-versions/jdk9/src/main/scala/Hello.scala b/src/sbt-test/docker/jdk-versions/jdk17/src/main/scala/Hello.scala similarity index 52% rename from src/sbt-test/docker/jdk-versions/jdk9/src/main/scala/Hello.scala rename to src/sbt-test/docker/jdk-versions/jdk17/src/main/scala/Hello.scala index d79f58471..86b992607 100644 --- a/src/sbt-test/docker/jdk-versions/jdk9/src/main/scala/Hello.scala +++ b/src/sbt-test/docker/jdk-versions/jdk17/src/main/scala/Hello.scala @@ -1,3 +1,3 @@ object Hello extends App { - println("Hello JDK9!") + println("Hello JDK17!") } diff --git a/src/sbt-test/docker/jdk-versions/jdk21/src/main/scala/Hello.scala b/src/sbt-test/docker/jdk-versions/jdk21/src/main/scala/Hello.scala new file mode 100644 index 000000000..1f53edc4e --- /dev/null +++ b/src/sbt-test/docker/jdk-versions/jdk21/src/main/scala/Hello.scala @@ -0,0 +1,3 @@ +object Hello extends App { + println("Hello JDK21!") +} \ No newline at end of file diff --git a/src/sbt-test/docker/jdk-versions/jdk25/src/main/scala/Hello.scala b/src/sbt-test/docker/jdk-versions/jdk25/src/main/scala/Hello.scala new file mode 100644 index 000000000..daf73eed4 --- /dev/null +++ b/src/sbt-test/docker/jdk-versions/jdk25/src/main/scala/Hello.scala @@ -0,0 +1,3 @@ +object Hello extends App { + println("Hello JDK25!") +} \ No newline at end of file diff --git a/src/sbt-test/docker/jdk-versions/test b/src/sbt-test/docker/jdk-versions/test index 579af7d63..2ece73364 100644 --- a/src/sbt-test/docker/jdk-versions/test +++ b/src/sbt-test/docker/jdk-versions/test @@ -1,9 +1,15 @@ > project jdk8 > Docker/publishLocal $ exec bash -c 'docker run --rm jdk-versions:8 | grep -q "Hello JDK8!"' -> project jdk9 +> project jdk11 > Docker/publishLocal -$ exec bash -c 'docker run --rm jdk-versions:9 | grep -q "Hello JDK9!"' -> project jdk10 +$ exec bash -c 'docker run --rm jdk-versions:11 | grep -q "Hello JDK11!"' +> project jdk17 > Docker/publishLocal -$ exec bash -c 'docker run --rm jdk-versions:10 | grep -q "Hello JDK10!"' +$ exec bash -c 'docker run --rm jdk-versions:17 | grep -q "Hello JDK17!"' +> project jdk21 +> Docker/publishLocal +$ exec bash -c 'docker run --rm jdk-versions:21 | grep -q "Hello JDK21!"' +> project jdk25 +> Docker/publishLocal +$ exec bash -c 'docker run --rm jdk-versions:25 | grep -q "Hello JDK25!"' diff --git a/src/sbt-test/docker/override-commands/build.sbt b/src/sbt-test/docker/override-commands/build.sbt index d645fdda2..ae1d06622 100644 --- a/src/sbt-test/docker/override-commands/build.sbt +++ b/src/sbt-test/docker/override-commands/build.sbt @@ -9,7 +9,7 @@ maintainer := "Gary Coady " dockerUpdateLatest := true dockerCommands := Seq( - Cmd("FROM", "openjdk:8u342"), + Cmd("FROM", "eclipse-temurin:25"), Cmd("LABEL", s"""MAINTAINER="${maintainer.value}""""), ExecCmd("CMD", "echo", "Hello, World from Docker") ) diff --git a/src/sphinx/formats/docker.rst b/src/sphinx/formats/docker.rst index 4c715e6e0..8df8ad98e 100644 --- a/src/sphinx/formats/docker.rst +++ b/src/sphinx/formats/docker.rst @@ -337,7 +337,7 @@ In your sbt console type .. code-block:: bash > show dockerCommands - [info] List(Cmd(FROM,openjdk:8u342), Cmd(LABEL,MAINTAINER=Your Name ), ...) + [info] List(Cmd(FROM,eclipse-temurin:25), Cmd(LABEL,MAINTAINER=Your Name ), ...) @@ -405,7 +405,7 @@ Now let's start adding some Docker commands. import com.typesafe.sbt.packager.docker._ dockerCommands := Seq( - Cmd("FROM", "openjdk:8u342"), + Cmd("FROM", "eclipse-temurin:25"), Cmd("LABEL", s"""MAINTAINER="${maintainer.value}""""), ExecCmd("CMD", "echo", "Hello, World from Docker") ) diff --git a/test-project-docker/build.sbt b/test-project-docker/build.sbt index a7f78a3b1..8a6efa076 100644 --- a/test-project-docker/build.sbt +++ b/test-project-docker/build.sbt @@ -4,7 +4,7 @@ name := "docker-test" version := "0.1.0" maintainer := "Gary Coady " -dockerBaseImage := "openjdk:8u342-jre-alpine" +dockerBaseImage := "eclipse-temurin:25-jre-alpine" dockerUpdateLatest := true dockerBuildxPlatforms := Seq("linux/arm64/v8", "linux/amd64") dockerUsername := Some("dswiecki") From e26ab62d51e87518d115f3c163b39614331a6106 Mon Sep 17 00:00:00 2001 From: Natalie Coley Date: Fri, 9 Jan 2026 11:48:49 -0800 Subject: [PATCH 4/4] minor update to add -jre --- src/sbt-test/docker/jdk-versions/build.sbt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/sbt-test/docker/jdk-versions/build.sbt b/src/sbt-test/docker/jdk-versions/build.sbt index ea12956ad..eb3ffff22 100644 --- a/src/sbt-test/docker/jdk-versions/build.sbt +++ b/src/sbt-test/docker/jdk-versions/build.sbt @@ -7,7 +7,7 @@ lazy val `jdk8` = project .enablePlugins(JavaAppPackaging) .settings( name := basename + "-8", - dockerBaseImage := "eclipse-temurin:8", + dockerBaseImage := "eclipse-temurin:8-jre", dockerBuildOptions := dockerBuildOptions.value ++ Seq("-t", "jdk-versions:8") ) @@ -16,7 +16,7 @@ lazy val `jdk11` = project .enablePlugins(JavaAppPackaging) .settings( name := basename + "-11", - dockerBaseImage := "eclipse-temurin:11", + dockerBaseImage := "eclipse-temurin:11-jre", dockerBuildOptions := dockerBuildOptions.value ++ Seq("-t", "jdk-versions:11") ) @@ -25,7 +25,7 @@ lazy val `jdk17` = project .enablePlugins(JavaAppPackaging) .settings( name := basename + "-17", - dockerBaseImage := "eclipse-temurin:17", + dockerBaseImage := "eclipse-temurin:17-jre", dockerBuildOptions := dockerBuildOptions.value ++ Seq("-t", "jdk-versions:17") ) @@ -34,7 +34,7 @@ lazy val `jdk21` = project .enablePlugins(JavaAppPackaging) .settings( name := basename + "-21", - dockerBaseImage := "eclipse-temurin:21", + dockerBaseImage := "eclipse-temurin:21-jre", dockerBuildOptions := dockerBuildOptions.value ++ Seq("-t", "jdk-versions:21") ) @@ -44,6 +44,6 @@ lazy val `jdk25` = project .enablePlugins(JavaAppPackaging) .settings( name := basename + "-25", - dockerBaseImage := "eclipse-temurin:25", + dockerBaseImage := "eclipse-temurin:25-jre", dockerBuildOptions := dockerBuildOptions.value ++ Seq("-t", "jdk-versions:25") )