This is an automated email from the ASF dual-hosted git repository.

janhoy pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/solr.git


The following commit(s) were added to refs/heads/main by this push:
     new ffa6a3a0f32 SOLR-17445 Update Docker base image to 
eclipse-temurin:21-jre-noble (#3640)
ffa6a3a0f32 is described below

commit ffa6a3a0f32f8231ee7d215af1ff4d2b39979efb
Author: Jan Høydahl <jan...@apache.org>
AuthorDate: Sat Sep 13 14:37:41 2025 +0200

    SOLR-17445 Update Docker base image to eclipse-temurin:21-jre-noble (#3640)
---
 solr/CHANGES.txt                                             |  2 ++
 solr/docker/README.md                                        |  2 +-
 solr/docker/build.gradle                                     | 12 ++++++------
 solr/docker/gradle-help.txt                                  |  2 +-
 solr/docker/templates/Dockerfile.body.template               |  4 ++--
 .../upgrade-notes/pages/major-changes-in-solr-10.adoc        |  4 ++++
 6 files changed, 16 insertions(+), 10 deletions(-)

diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 08a780c7677..837e05caa6c 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -164,6 +164,8 @@ Dependency Upgrades
 
 * SOLR-17631: Upgrade to Lucene 10.2.1 (Ishan Chattopadhyaya, noble, Jason 
Gerlowski, Eric Pugh, janhoy, Christine Poerschke)
 
+* SOLR-17445: The base docker image has been upgraded from Ubuntu 22 (Jammy) 
to Ubuntu 24 (Noble). (Jan Høydahl)
+
 Other Changes
 ---------------------
 
diff --git a/solr/docker/README.md b/solr/docker/README.md
index 7a3b7674bd0..ba8fbdcef61 100644
--- a/solr/docker/README.md
+++ b/solr/docker/README.md
@@ -47,7 +47,7 @@ When building the image, Solr accepts arguments for 
customization. Currently onl
 - `BASE_IMAGE`: Change the base java image for Solr. This can be used to 
change java versions, jvms, etc.
 
 ```bash
-docker build --build-arg BASE_IMAGE=custom/jdk:17-slim -f 
solr-X.Y.Z/docker/Dockerfile 
https://www.apache.org/dyn/closer.lua/solr/X.Y.Z/solr-X.Y.Z.tgz
+docker build --build-arg BASE_IMAGE=custom/jdk:21-slim -f 
solr-X.Y.Z/docker/Dockerfile 
https://www.apache.org/dyn/closer.lua/solr/X.Y.Z/solr-X.Y.Z.tgz
 ```
 
 Official Image Management
diff --git a/solr/docker/build.gradle b/solr/docker/build.gradle
index 6c3417504d8..bda15db92f1 100644
--- a/solr/docker/build.gradle
+++ b/solr/docker/build.gradle
@@ -33,7 +33,7 @@ def dockerImageTagSuffix = "${ -> 
propertyOrEnvOrDefault("solr.docker.imageTagSu
 def dockerImageRepo = "${ -> propertyOrEnvOrDefault("solr.docker.imageRepo", 
"SOLR_DOCKER_IMAGE_REPO", "apache/solr") }"
 def dockerImageTag = "${ -> propertyOrEnvOrDefault("solr.docker.imageTag", 
"SOLR_DOCKER_IMAGE_TAG", project.version + dockerImageDistSuffix) }"
 def dockerImageName = "${ -> propertyOrEnvOrDefault("solr.docker.imageName", 
"SOLR_DOCKER_IMAGE_NAME", 
"${dockerImageRepo}:${dockerImageTag}${dockerImageTagSuffix}") }"
-def baseDockerImage = "${ -> propertyOrEnvOrDefault("solr.docker.baseImage", 
"SOLR_DOCKER_BASE_IMAGE", 'eclipse-temurin:' + javaVersion + '-jre-jammy') }"
+def baseDockerImage = "${ -> propertyOrEnvOrDefault("solr.docker.baseImage", 
"SOLR_DOCKER_BASE_IMAGE", 'eclipse-temurin:' + javaVersion + '-jre-noble') }"
 def officialDockerImageName = {String dist -> "${ -> 
propertyOrEnvOrDefault("solr.docker.imageName", "SOLR_DOCKER_IMAGE_NAME", 
"${dockerImageRepo}-official:${dockerImageTag}${distToSuffix(dist)}${dockerImageTagSuffix}")
 }" }
 
 def releaseGpgFingerprint = "${ -> 
propertyOrDefault('signing.gnupg.keyName',propertyOrDefault('signing.keyId',''))
 }"
@@ -277,9 +277,9 @@ task createBodySnippetDockerfile(type: Copy) {
   outputs.file("$buildDir/snippets/Dockerfile.body.snippet")
   rename { name -> name.replace("template","snippet") }
   filteringCharset 'UTF-8'
-  
+
   // NOTE: The only "templating" the Dockerfile.body supports is removing 
comments.
-  // 
+  //
   // Any situation where it feel appropriate to add variable substitution 
should be reconsidered, and probably
   // implemented as either a build-arg or as a variable expanded in the header 
snippets (or both)
   filter( commentFilter )
@@ -289,14 +289,14 @@ ext {
   // NOTE: 'props' are variables that will be replaced in the respective 
templates,
   // and they must consist solely of characters matching the regex 
'(_|\\p{Upper})+'.
   // They may only be used in ARG and FROM lines, via the syntax: 
'_REPLACE_FOO_'
-  // where 'FOO' is the key used in 'props' (NOTE the leading and trailing 
literal '_' characters) 
+  // where 'FOO' is the key used in 'props' (NOTE the leading and trailing 
literal '_' characters)
   dfLocalDetails = [
     name: 'Local',
     template: 'local',
     desc: 'Dockerfile used to create local Solr docker images directly from 
Solr release tgz file',
 
     // NOTE: There should be no reason for Dockerfile.local to include unique 
values
-    // 
+    //
     // Values identical in both Dockerfiles should use consistent names in 
both templates and
     // be defined in the task creation.
     props: [:]
@@ -576,7 +576,7 @@ abstract class TestDockerImageTask extends DefaultTask {
 
   @Input
   SetProperty<String> testCasesExclude = project.objects.setProperty(String)
-  
+
   @OutputDirectory
   abstract public DirectoryProperty getOutputDir()
 
diff --git a/solr/docker/gradle-help.txt b/solr/docker/gradle-help.txt
index 63d5089259b..4df9bae9626 100644
--- a/solr/docker/gradle-help.txt
+++ b/solr/docker/gradle-help.txt
@@ -17,7 +17,7 @@ gradlew dockerBuild
 The docker build task accepts the following inputs, all accepted via both 
Environment Variables and Gradle Properties.
 
 Base Docker Image: (The docker image used for the "FROM" in the Solr 
Dockerfile)
-   Default: "eclipse-temurin:17-jre-jammy"
+   Default: "eclipse-temurin:21-jre-noble"
    EnvVar: SOLR_DOCKER_BASE_IMAGE
    Gradle Property: -Psolr.docker.baseImage
 
diff --git a/solr/docker/templates/Dockerfile.body.template 
b/solr/docker/templates/Dockerfile.body.template
index c6714ecfa62..4d9d537419a 100644
--- a/solr/docker/templates/Dockerfile.body.template
+++ b/solr/docker/templates/Dockerfile.body.template
@@ -20,7 +20,7 @@
 #-# ! ! ! NO VARIABLES OR CONDITIONAL LOGIC SHOULD BE NEEDED OR USED IN THIS 
TEMPLATE ! ! !
 #-# (It exists as a 'template' solely so that this comment can exist)
 #-#
-#-# The pre-reqs for this file (which must be satisfied for any "header" 
pre-pended to it are that 
+#-# The pre-reqs for this file (which must be satisfied for any "header" 
pre-pended to it are that
 #-# '/opt/solr-X.Y.Z' exists (ie: COPY'ed from the build context and/or a 
downloaded and unpacked solr.tgz)
 #-#
 #-#
@@ -71,7 +71,7 @@ RUN set -ex; \
 
 RUN set -ex; \
     apt-get update; \
-    apt-get -y --no-install-recommends install acl lsof procps wget netcat 
gosu tini jattach; \
+    apt-get -y --no-install-recommends install acl lsof procps wget 
netcat-openbsd gosu tini jattach; \
     rm -rf /var/lib/apt/lists/*;
 
 VOLUME /var/solr
diff --git 
a/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-10.adoc 
b/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-10.adoc
index b78921ff854..f5bdf34f1a7 100644
--- 
a/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-10.adoc
+++ 
b/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-10.adoc
@@ -168,6 +168,10 @@ Nowadays, the HTTP request is available via internal APIs: 
`SolrQueryRequest.get
 === Upgrade to Jetty 12.x
 Solr upgraded to Jetty 12.x from 10.x as Jetty 10 and 11 have reached 
end-of-life support. Jetty 12.x requires Java 17 or newer and is fully 
compatible with Solr's new minimum requirement of Java 21. This upgrade brings 
support for modern HTTP protocols and adopts the Jakarta EE 10 namespace. For 
more details, see https://webtide.com/jetty-12-has-arrived/.
 
+=== Docker
+
+The OS version of the official Docker image and provided Dockerfile has been 
upgraded to Ubuntu 24 (noble) from Ubuntu 22 (jammy).
+
 === Analysis and Tokenizers
 
 ==== PathHierarchyTokenizer Behavior Change

Reply via email to