From b616692c474b1a8e8319cfebeca045680dd0501f Mon Sep 17 00:00:00 2001 From: "Mateusz \"Serafin\" Gajewski" Date: Wed, 8 Oct 2025 11:29:29 +0200 Subject: [PATCH 1/7] Use UBI 10 image --- docker/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/build.sh b/docker/build.sh index 027c2dd03..ec568c6f7 100755 --- a/docker/build.sh +++ b/docker/build.sh @@ -118,7 +118,7 @@ TAG_PREFIX="trino-gateway:${TRINO_GATEWAY_VERSION}" #version file is used by the Helm chart test echo "${TRINO_GATEWAY_VERSION}" > "${SOURCE_DIR}"/trino-gateway-version.txt -TRINO_GATEWAY_BASE_IMAGE=${TRINO_GATEWAY_BASE_IMAGE:-'registry.access.redhat.com/ubi9/ubi-minimal:latest'} +TRINO_GATEWAY_BASE_IMAGE=${TRINO_GATEWAY_BASE_IMAGE:-'registry.access.redhat.com/ubi10/ubi-minimal:latest'} for arch in "${ARCHITECTURES[@]}"; do echo "🫙 Building the image for $arch with JDK ${JDK_VERSION}" From 955f80865587c3fcf3c656fb30cf84571a895af8 Mon Sep 17 00:00:00 2001 From: "Mateusz \"Serafin\" Gajewski" Date: Wed, 8 Oct 2025 11:32:44 +0200 Subject: [PATCH 2/7] Use exact Java version and upgrade to 24.0.2 --- .java-version | 2 +- docker/Dockerfile | 8 ++++---- docker/build.sh | 29 +++++++++-------------------- 3 files changed, 14 insertions(+), 25 deletions(-) diff --git a/.java-version b/.java-version index a45fd52cc..eae980b3c 100644 --- a/.java-version +++ b/.java-version @@ -1 +1 @@ -24 +24.0.2+12 diff --git a/docker/Dockerfile b/docker/Dockerfile index 19acf1951..7552e5e60 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -15,8 +15,8 @@ ARG TRINO_GATEWAY_BASE_IMAGE FROM ${TRINO_GATEWAY_BASE_IMAGE} AS jdk-download ARG JDK_DOWNLOAD_LINK -ARG JDK_VERSION -ENV JAVA_HOME="/usr/lib/jvm/jdk-${JDK_VERSION}" +ARG JDK_RELEASE_NAME +ENV JAVA_HOME="/usr/lib/jvm/jdk-${JDK_RELEASE_NAME}" RUN \ set -xeuo pipefail && \ @@ -29,8 +29,8 @@ RUN \ FROM ${TRINO_GATEWAY_BASE_IMAGE} WORKDIR /usr/lib/trino-gateway -ARG JDK_VERSION -ENV JAVA_HOME="/usr/lib/jvm/jdk-${JDK_VERSION}" +ARG JDK_RELEASE_NAME +ENV JAVA_HOME="/usr/lib/jvm/jdk-${JDK_RELEASE_NAME}" ENV PATH=$PATH:$JAVA_HOME/bin COPY --from=jdk-download $JAVA_HOME $JAVA_HOME diff --git a/docker/build.sh b/docker/build.sh index ec568c6f7..811d6d2bc 100755 --- a/docker/build.sh +++ b/docker/build.sh @@ -22,7 +22,7 @@ SOURCE_DIR="${SCRIPT_DIR}/.." ARCHITECTURES=(amd64 arm64 ppc64le) TRINO_GATEWAY_VERSION= -JDK_VERSION=$(cat "${SOURCE_DIR}/.java-version") +JDK_RELEASE_NAME=$(cat "${SOURCE_DIR}/.java-version") # necessary to allow version parsing from the pom file MVNW_VERBOSE=false @@ -39,7 +39,7 @@ while getopts ":a:h:r:j:" o; do exit 0 ;; j) - JDK_VERSION="${OPTARG}" + JDK_RELEASE_NAME="${OPTARG}" ;; *) usage @@ -61,29 +61,18 @@ function check_environment() { } function temurin_jdk_link() { - JDK_VERSION="${1}" + JDK_RELEASE_NAME="${1}" ARCH="${2}" - versionsUrl="https://api.adoptium.net/v3/info/release_names?heap_size=normal&image_type=jdk&os=linux&page=0&page_size=20&project=jdk&release_type=ga&semver=false&sort_method=DEFAULT&sort_order=ASC&vendor=eclipse&version=%28${JDK_VERSION}%2C%5D" - if ! result=$(curl -fLs "$versionsUrl" -H 'accept: application/json'); then - echo >&2 "Failed to fetch release names for JDK version [${JDK_VERSION}, ) from Temurin API : $result" - exit 1 - fi - - if ! RELEASE_NAME=$(echo "$result" | jq -er '.releases[]' | grep "${JDK_VERSION}" | head -n 1); then - echo >&2 "Failed to determine release name: ${RELEASE_NAME}" - exit 1 - fi - case "${ARCH}" in arm64) - echo "https://api.adoptium.net/v3/binary/version/${RELEASE_NAME}/linux/aarch64/jdk/hotspot/normal/eclipse?project=jdk" + echo "https://api.adoptium.net/v3/binary/version/${JDK_RELEASE_NAME}/linux/aarch64/jdk/hotspot/normal/eclipse?project=jdk" ;; amd64) - echo "https://api.adoptium.net/v3/binary/version/${RELEASE_NAME}/linux/x64/jdk/hotspot/normal/eclipse?project=jdk" + echo "https://api.adoptium.net/v3/binary/version/${JDK_RELEASE_NAME}/linux/x64/jdk/hotspot/normal/eclipse?project=jdk" ;; ppc64le) - echo "https://api.adoptium.net/v3/binary/version/${RELEASE_NAME}/linux/ppc64le/jdk/hotspot/normal/eclipse?project=jdk" + echo "https://api.adoptium.net/v3/binary/version/${JDK_RELEASE_NAME}/linux/ppc64le/jdk/hotspot/normal/eclipse?project=jdk" ;; *) echo "${ARCH} is not supported for Docker image" @@ -121,13 +110,13 @@ echo "${TRINO_GATEWAY_VERSION}" > "${SOURCE_DIR}"/trino-gateway-version.txt TRINO_GATEWAY_BASE_IMAGE=${TRINO_GATEWAY_BASE_IMAGE:-'registry.access.redhat.com/ubi10/ubi-minimal:latest'} for arch in "${ARCHITECTURES[@]}"; do - echo "🫙 Building the image for $arch with JDK ${JDK_VERSION}" + echo "🫙 Building the image for $arch with Temurin JDK release ${JDK_RELEASE_NAME}" DOCKER_BUILDKIT=1 \ docker build \ "${WORK_DIR}" \ --pull \ - --build-arg JDK_VERSION="${JDK_VERSION}" \ - --build-arg JDK_DOWNLOAD_LINK="$(temurin_jdk_link "${JDK_VERSION}" "${arch}")" \ + --build-arg JDK_RELEASE_NAME="${JDK_RELEASE_NAME}" \ + --build-arg JDK_DOWNLOAD_LINK="$(temurin_jdk_link "jdk-${JDK_RELEASE_NAME}" "${arch}")" \ --build-arg TRINO_GATEWAY_BASE_IMAGE="${TRINO_GATEWAY_BASE_IMAGE}" \ --platform "linux/$arch" \ -f Dockerfile \ From 19719f9ecb2789bf437713e1c9347e7fdde06041 Mon Sep 17 00:00:00 2001 From: "Mateusz \"Serafin\" Gajewski" Date: Wed, 8 Oct 2025 11:39:11 +0200 Subject: [PATCH 3/7] Update Jetty to 12.0.25 --- pom.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pom.xml b/pom.xml index d104a55ef..5874c248b 100644 --- a/pom.xml +++ b/pom.xml @@ -45,6 +45,8 @@ true 8 clean verify -DskipTests + + 12.0.25 From 3b820be80ec02482fd70a0e465948d623ba9531b Mon Sep 17 00:00:00 2001 From: "Mateusz \"Serafin\" Gajewski" Date: Wed, 8 Oct 2025 11:40:26 +0200 Subject: [PATCH 4/7] Update mina-core to 2.2.4 --- pom.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pom.xml b/pom.xml index 5874c248b..827ef138b 100644 --- a/pom.xml +++ b/pom.xml @@ -81,6 +81,12 @@ 1.10 + + org.apache.mina + mina-core + 2.2.4 + + org.glassfish.jersey.core jersey-server From 8115a3abb36364d8bdd2ad89715584b056e734c7 Mon Sep 17 00:00:00 2001 From: "Mateusz \"Serafin\" Gajewski" Date: Wed, 8 Oct 2025 11:51:16 +0200 Subject: [PATCH 5/7] Use ubi10 as builder image and switch base to micro --- docker/Dockerfile | 25 +++++++++++++++++++++---- docker/build.sh | 4 +++- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 7552e5e60..054c823b0 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -13,19 +13,37 @@ # syntax=docker/dockerfile:1 ARG TRINO_GATEWAY_BASE_IMAGE -FROM ${TRINO_GATEWAY_BASE_IMAGE} AS jdk-download +ARG TRINO_GATEWAY_BUILD_IMAGE + +FROM ${TRINO_GATEWAY_BUILD_IMAGE} AS jdk-download ARG JDK_DOWNLOAD_LINK ARG JDK_RELEASE_NAME ENV JAVA_HOME="/usr/lib/jvm/jdk-${JDK_RELEASE_NAME}" RUN \ set -xeuo pipefail && \ - microdnf install -y tar gzip && \ + dnf install -y tar gzip && \ # Install JDK from the provided archive link \ echo "Downloading JDK from ${JDK_DOWNLOAD_LINK}" && \ mkdir -p "${JAVA_HOME}" && \ curl -#LfS "${JDK_DOWNLOAD_LINK}" | tar -zx --strip 1 -C "${JAVA_HOME}" +FROM ${TRINO_GATEWAY_BUILD_IMAGE} AS packages + +RUN \ + set -xeuo pipefail && \ + mkdir -p /tmp/overlay/usr/libexec/ && \ + touch /tmp/overlay/usr/libexec/grepconf.sh && \ + chmod +x /tmp/overlay/usr/libexec/grepconf.sh && \ + dnf update -y && \ + dnf install --installroot /tmp/overlay --setopt install_weak_deps=false --nodocs -y \ + less \ + zlib `#required by java` \ + curl-minimal grep `# required by health-check` \ + shadow-utils `# required by useradd` \ + tar `# required to support kubectl cp` && \ + rm -rf /tmp/overlay/var/cache/* + FROM ${TRINO_GATEWAY_BASE_IMAGE} WORKDIR /usr/lib/trino-gateway @@ -33,11 +51,10 @@ ARG JDK_RELEASE_NAME ENV JAVA_HOME="/usr/lib/jvm/jdk-${JDK_RELEASE_NAME}" ENV PATH=$PATH:$JAVA_HOME/bin COPY --from=jdk-download $JAVA_HOME $JAVA_HOME +COPY --from=packages /tmp/overlay / RUN \ set -xeu && \ - microdnf update -y && \ - microdnf install -y tar less shadow-utils && \ groupadd trino --gid 1000 && \ useradd trino --uid 1000 --gid 1000 --create-home && \ mkdir -p /usr/lib/trino-gateway /etc/trino-gateway && \ diff --git a/docker/build.sh b/docker/build.sh index 811d6d2bc..e1d899855 100755 --- a/docker/build.sh +++ b/docker/build.sh @@ -107,7 +107,8 @@ TAG_PREFIX="trino-gateway:${TRINO_GATEWAY_VERSION}" #version file is used by the Helm chart test echo "${TRINO_GATEWAY_VERSION}" > "${SOURCE_DIR}"/trino-gateway-version.txt -TRINO_GATEWAY_BASE_IMAGE=${TRINO_GATEWAY_BASE_IMAGE:-'registry.access.redhat.com/ubi10/ubi-minimal:latest'} +TRINO_GATEWAY_BASE_IMAGE=${TRINO_GATEWAY_BASE_IMAGE:-'registry.access.redhat.com/ubi10/ubi-micro:latest'} +TRINO_GATEWAY_BUILD_IMAGE=${TRINO_GATEWAY_BUILD_IMAGE:-'registry.access.redhat.com/ubi10/ubi:latest'} for arch in "${ARCHITECTURES[@]}"; do echo "🫙 Building the image for $arch with Temurin JDK release ${JDK_RELEASE_NAME}" @@ -118,6 +119,7 @@ for arch in "${ARCHITECTURES[@]}"; do --build-arg JDK_RELEASE_NAME="${JDK_RELEASE_NAME}" \ --build-arg JDK_DOWNLOAD_LINK="$(temurin_jdk_link "jdk-${JDK_RELEASE_NAME}" "${arch}")" \ --build-arg TRINO_GATEWAY_BASE_IMAGE="${TRINO_GATEWAY_BASE_IMAGE}" \ + --build-arg TRINO_GATEWAY_BUILD_IMAGE="${TRINO_GATEWAY_BUILD_IMAGE}" \ --platform "linux/$arch" \ -f Dockerfile \ -t "${TAG_PREFIX}-$arch" From 491ad9ffd40952e91c0fe264b556904b2b4615db Mon Sep 17 00:00:00 2001 From: "Mateusz \"Serafin\" Gajewski" Date: Wed, 8 Oct 2025 11:54:38 +0200 Subject: [PATCH 6/7] Update units to 1.12 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 827ef138b..6e6fbbe67 100644 --- a/pom.xml +++ b/pom.xml @@ -78,7 +78,7 @@ io.airlift units - 1.10 + 1.12 From b601bda4239983a247b1829a997420a5d4633334 Mon Sep 17 00:00:00 2001 From: "Mateusz \"Serafin\" Gajewski" Date: Wed, 8 Oct 2025 11:59:15 +0200 Subject: [PATCH 7/7] Update commons-lang3 to 3.18.0 --- pom.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pom.xml b/pom.xml index 6e6fbbe67..84248ef4c 100644 --- a/pom.xml +++ b/pom.xml @@ -81,6 +81,12 @@ 1.12 + + org.apache.commons + commons-lang3 + 3.18.0 + + org.apache.mina mina-core