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