From 7e4f96503bb03372d3a08c5bcaf88c47168685e4 Mon Sep 17 00:00:00 2001 From: YevhenBondarenko Date: Wed, 13 Mar 2024 13:33:07 +0100 Subject: [PATCH] added openjdk 21 --- openjdk21/docker/Dockerfile | 57 +++++++++++++ openjdk21/pom.xml | 164 ++++++++++++++++++++++++++++++++++++ pom.xml | 1 + 3 files changed, 222 insertions(+) create mode 100644 openjdk21/docker/Dockerfile create mode 100644 openjdk21/pom.xml diff --git a/openjdk21/docker/Dockerfile b/openjdk21/docker/Dockerfile new file mode 100644 index 0000000..b9fb3dd --- /dev/null +++ b/openjdk21/docker/Dockerfile @@ -0,0 +1,57 @@ +# +# Copyright © 2016-2020 The Thingsboard Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +FROM ${docker.repo}/base:${debian.codename} + +# Default to UTF-8 file.encoding +ENV LANG C.UTF-8 +ENV JAVA_HOME /docker-java-home +ENV JAVA_VERSION 21.0.2 +ENV JAVA_DEBIAN_VERSION 21.0.2+13-2 + +# Remove when stable version is available +RUN echo "deb http://deb.debian.org/debian trixie main" > /etc/apt/sources.list.d/trixie.list + +RUN apt-get update && apt-get install -y --no-install-recommends \ + apt-transport-https \ + ca-certificates \ + && { \ + echo '#!/bin/sh'; \ + echo 'set -e'; \ + echo; \ + echo 'dirname "$(dirname "$(readlink -f "$(which javac || which java)")")"'; \ + } > /usr/local/bin/docker-java-home \ + && chmod +x /usr/local/bin/docker-java-home \ + && ln -svT "/usr/lib/jvm/java-21-openjdk-$(dpkg --print-architecture)" /docker-java-home \ + && mkdir -p /usr/share/man/man1 \ + && set -ex; \ + \ + apt list openjdk-21-jdk -a | grep openjdk-21-jdk ; \ + apt-get install -y --no-install-recommends \ + openjdk-21-jdk="$JAVA_DEBIAN_VERSION" \ + ; \ + apt-get autoremove --purge --yes ; \ + rm -rf /var/lib/apt/lists/*; \ +# expire resolved DNS in 60 sec + echo 'networkaddress.cache.ttl=60' >> /etc/java-21-openjdk/security/java.security \ + \ +# verify that "docker-java-home" returns what we expect + [ "$(readlink -f "$JAVA_HOME")" = "$(docker-java-home)" ]; \ + \ +# basic smoke test + fileEncoding="$(echo 'System.out.println(System.getProperty("file.encoding"))' | jshell -s -)"; [ "$fileEncoding" = 'UTF-8' ]; rm -rf ~/.java; \ + javac -version; \ + java -version diff --git a/openjdk21/pom.xml b/openjdk21/pom.xml new file mode 100644 index 0000000..8a44ac3 --- /dev/null +++ b/openjdk21/pom.xml @@ -0,0 +1,164 @@ + + + 4.0.0 + + org.thingsboard + 1.7.0 + docker + + openjdk21 + pom + + ThingsBoard Open JDK 21 Image + https://thingsboard.io + ThingsBoard Open JDK 21 Image + + + ${basedir}/.. + openjdk21 + pre-integration-test + pre-integration-test + + + + + + org.apache.maven.plugins + maven-resources-plugin + + + copy-docker-config + process-resources + + copy-resources + + + ${project.build.directory} + + + docker + true + + + + + + + + com.spotify + dockerfile-maven-plugin + + + build-docker-image + pre-integration-test + + build + + + ${dockerfile.skip} + ${docker.repo}/${docker.name} + true + false + ${project.build.directory} + + false + + + + tag-docker-image + pre-integration-test + + tag + + + ${dockerfile.skip} + ${docker.repo}/${docker.name} + ${project.version} + + + + tag-debian-codename-docker-image + pre-integration-test + + tag + + + ${dockerfile.skip} + ${docker.repo}/${docker.name} + ${debian.codename} + + + + + + + + + push-docker-image + + + push-docker-image + + + + + + com.spotify + dockerfile-maven-plugin + + + push-latest-docker-image + pre-integration-test + + push + + + latest + ${docker.repo}/${docker.name} + + + + push-version-docker-image + pre-integration-test + + push + + + ${project.version} + ${docker.repo}/${docker.name} + + + + + + + + + + + jenkins + Jenkins Repository + http://repo.jenkins-ci.org/releases + + false + + + + diff --git a/pom.xml b/pom.xml index 4757daa..afd6710 100644 --- a/pom.xml +++ b/pom.xml @@ -52,6 +52,7 @@ node openjdk11 openjdk17 + openjdk21 haproxy-certbot website toolbox