From 2fe47630438d9a19723e0b708d097f368d734c6b Mon Sep 17 00:00:00 2001 From: Aurelio Garcia-Ribeyro Date: Tue, 14 Jan 2025 12:07:22 -0800 Subject: [PATCH] Changed the JDK 17 and earlier dockerfiles to download the binaries from cloud.oracle.com, using download tokens, instead of having to be manually updated for all CPUs. Dropped the Oracle Linux 7 dockerfiles. Some dockerfiles had an extension with the Oracle Linux name but the "default" ones did not. Normalized it so that all Dockerfiles now indicate which version of Oracle Linux they use." Signed-off-by: Aurelio Garcia-Ribeyro --- OracleJava/11/Dockerfile | 90 ------------------ OracleJava/11/Dockerfile.ol8 | 60 ++++++------ OracleJava/11/build.sh | 14 --- OracleJava/17/Dockerfile | 87 ----------------- OracleJava/17/Dockerfile.ol8 | 93 +++++++++++++++++++ OracleJava/17/build.sh | 8 -- OracleJava/21/{Dockerfile => Dockerfile.ol8} | 2 +- OracleJava/21/Dockerfile.ol9 | 2 +- OracleJava/21/build.sh | 4 +- OracleJava/23/{Dockerfile => Dockerfile.ol9} | 2 +- OracleJava/23/build.sh | 4 +- OracleJava/8/jdk/Dockerfile | 83 ----------------- OracleJava/8/jdk/Dockerfile.ol8 | 52 ++++++----- OracleJava/8/jdk/build.sh | 15 --- OracleJava/8/serverjre/Dockerfile | 76 --------------- OracleJava/8/serverjre/Dockerfile.ol8 | 50 +++++----- OracleJava/8/serverjre/build.sh | 15 --- OracleJava/README.md | 50 ++++------ .../23/{Dockerfile => Dockerfile.ol9} | 2 +- OracleOpenJDK/23/build.sh | 2 +- OracleOpenJDK/README.md | 2 +- 21 files changed, 210 insertions(+), 503 deletions(-) delete mode 100644 OracleJava/11/Dockerfile delete mode 100755 OracleJava/11/build.sh delete mode 100644 OracleJava/17/Dockerfile create mode 100644 OracleJava/17/Dockerfile.ol8 delete mode 100755 OracleJava/17/build.sh rename OracleJava/21/{Dockerfile => Dockerfile.ol8} (97%) rename OracleJava/23/{Dockerfile => Dockerfile.ol9} (97%) delete mode 100644 OracleJava/8/jdk/Dockerfile delete mode 100755 OracleJava/8/jdk/build.sh delete mode 100644 OracleJava/8/serverjre/Dockerfile delete mode 100755 OracleJava/8/serverjre/build.sh rename OracleOpenJDK/23/{Dockerfile => Dockerfile.ol9} (96%) diff --git a/OracleJava/11/Dockerfile b/OracleJava/11/Dockerfile deleted file mode 100644 index 3787fb9e7a..0000000000 --- a/OracleJava/11/Dockerfile +++ /dev/null @@ -1,90 +0,0 @@ -# Copyright (c) 2019, 2024 Oracle and/or its affiliates. -# -# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. -# -# ORACLE DOCKERFILES PROJECT -# -------------------------- -# This is the Dockerfile for Oracle JDK 11 on Oracle Linux 7 -# -# REQUIRED FILES TO BUILD THIS IMAGE -# ---------------------------------- -# -# (1) jdk-11.XX_linux-x64_bin.tar.gz or jdk-11.XX_linux-aarch64_bin.tar.gz -# Download from https://www.oracle.com/java/technologies/downloads/ -# -# HOW TO BUILD THIS IMAGE -# ----------------------- -# Put all downloaded files in the same directory as this Dockerfile -# Run: -# $ docker build -t oracle/jdk:11 . -# -# This command is already scripted in build.sh so you can alternatively run -# $ bash build.sh -# -# The builder image will be used to uncompress the tar.gz file with the Java Runtime. - -FROM oraclelinux:7-slim as builder - -LABEL maintainer="Aurelio Garcia-Ribeyro " - -RUN yum install -y gzip tar - - -# Default to UTF-8 file.encoding -ENV LANG en_US.UTF-8 - - -# Environment variables for the builder image. -# Required to validate that you are using the correct file - -ENV JAVA_HOME=/usr/java/jdk-11 - -## -COPY *.tar.gz /tmp/ -SHELL ["/bin/bash", "-o", "pipefail", "-c"] -RUN set -eux; \ - ARCH="$(uname -m)" && \ - if [ "$ARCH" = "x86_64" ]; \ - then \ - mv "$(ls /tmp/jdk-11*_linux-x64_bin.tar.gz)" /tmp/jdk.tar.gz ; \ - JAVA_SHA256=d22d0fcca761861a1eb2f5f6eb116c933354e8b1f76b3cda189c722cc0177c98 ; \ - else \ - mv "$(ls /tmp/jdk-11*_linux-aarch64_bin.tar.gz)" /tmp/jdk.tar.gz ; \ - JAVA_SHA256=3fc0d93f6363d32723c293ba5a9016e8ab27410351ed804020cfe71e87d3bc0a ; \ - fi && \ - echo "$JAVA_SHA256 */tmp/jdk.tar.gz" | sha256sum -c -; \ - mkdir -p "$JAVA_HOME"; \ - tar --extract --file /tmp/jdk.tar.gz --directory "$JAVA_HOME" --strip-components 1 - -## Get a fresh version of Oracle Linux 7-slim for the final image -FROM oraclelinux:7-slim - -# Default to UTF-8 file.encoding -ENV LANG en_US.UTF-8 - -ENV JAVA_HOME=/usr/java/jdk-11 - -ENV PATH $JAVA_HOME/bin:$PATH - -# Copy the uncompressed Java Runtime from the builder image -COPY --from=builder $JAVA_HOME $JAVA_HOME - -RUN set -eux; \ -# Update the base image - yum -y update; \ - yum install -y \ -# JDK assumes freetype is available - freetype fontconfig \ - ; \ - rm -rf /var/cache/yum; \ - ln -sfT "$JAVA_HOME" /usr/java/default; \ - ln -sfT "$JAVA_HOME" /usr/java/latest; \ - for bin in "$JAVA_HOME/bin/"*; do \ - base="$(basename "$bin")"; \ - [ ! -e "/usr/bin/$base" ]; \ - alternatives --install "/usr/bin/$base" "$base" "$bin" 20000; \ - done; \ -# -Xshare:dump will create a CDS archive to improve startup in subsequent runs - java -Xshare:dump; - -CMD ["jshell"] diff --git a/OracleJava/11/Dockerfile.ol8 b/OracleJava/11/Dockerfile.ol8 index a300f5c78e..69d30f79ad 100644 --- a/OracleJava/11/Dockerfile.ol8 +++ b/OracleJava/11/Dockerfile.ol8 @@ -1,4 +1,4 @@ -# Copyright (c) 2019, 2024 Oracle and/or its affiliates. +# Copyright (c) 2019, 2025 Oracle and/or its affiliates. # # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. # @@ -6,83 +6,87 @@ # -------------------------- # This is the Dockerfile for Oracle JDK 11 on Oracle Linux 8 # +# ARGS +# ---- +# This docker file requires two arguments: +# 1) JDK11_TOKEN is a valid dowload token for JDK 11. It can be created in cloud.oracle.com/jms under Java Download +# Token generation is documented on https://docs.cloud.oracle.com/en-us/iaas/jms/doc/java-download.html +# 2) OCI_REGION is the Oracle Cloud Infrastucture (OCI) region where the token is generated. +# # REQUIRED FILES TO BUILD THIS IMAGE # ---------------------------------- +# This dockerfile will download a copy of latest version of JDK 11 from +# https://javamanagementservice-download..oci.oraclecloud.com/java/11/latest/ # -# (1) jdk-11.XX_linux-x64_bin.tar.gz or jdk-11.XX_linux-aarch64_bin.tar.gz -# Download from https://www.oracle.com/java/technologies/downloads/ +# It will use either x64 or aarch64 depending on the target platform # # HOW TO BUILD THIS IMAGE # ----------------------- -# Put all downloaded files in the same directory as this Dockerfile # Run: -# $ docker build -t oracle/jdk:11 . -# -# This command is already scripted in build.sh so you can alternatively run -# $ bash build.sh 8 +# $ docker build --file Dockerfile.ol8 --tag oracle/jdk:11 --build-arg JDK11_TOKEN= --build-arg OCI_REGION= . # # The builder image will be used to uncompress the tar.gz file with the Java Runtime. FROM oraclelinux:8 as builder +ARG JDK11_TOKEN +ARG OCI_REGION LABEL maintainer="Aurelio Garcia-Ribeyro " +# Since the files are compressed as tar.gz first dnf install tar. +# gzip is already in oraclelinux:8 RUN dnf install -y tar # Default to UTF-8 file.encoding ENV LANG en_US.UTF-8 - # Environment variables for the builder image. # Required to validate that you are using the correct file -ENV JAVA_HOME=/usr/java/jdk-11 +ENV JAVA_URL=https://javamanagementservice-download."${OCI_REGION}".oci.oraclecloud.com/java/11/latest/ \ + JAVA_HOME=/usr/java/jdk-11 -## -COPY *.tar.gz /tmp/ SHELL ["/bin/bash", "-o", "pipefail", "-c"] RUN set -eux; \ ARCH="$(uname -m)" && \ + # Java uses just x64 in the name of the tarball if [ "$ARCH" = "x86_64" ]; \ - then \ - mv "$(ls /tmp/jdk-11*_linux-x64_bin.tar.gz)" /tmp/jdk.tar.gz ; \ - JAVA_SHA256=d22d0fcca761861a1eb2f5f6eb116c933354e8b1f76b3cda189c722cc0177c98 ; \ - else \ - mv "$(ls /tmp/jdk-11*_linux-aarch64_bin.tar.gz)" /tmp/jdk.tar.gz ; \ - JAVA_SHA256=3fc0d93f6363d32723c293ba5a9016e8ab27410351ed804020cfe71e87d3bc0a ; \ + then ARCH="x64"; \ fi && \ - echo "$JAVA_SHA256 */tmp/jdk.tar.gz" | sha256sum -c -; \ + JAVA_PKG="$JAVA_URL"jdk-11_linux-"${ARCH}"_bin.tar.gz; \ + JAVA_SHA256="$(curl -L "$JAVA_PKG".sha256)" ; \ + curl -L --header token:${JDK11_TOKEN} --output /tmp/jdk.tgz "$JAVA_PKG" && \ + echo "$JAVA_SHA256" */tmp/jdk.tgz | sha256sum -c; \ mkdir -p "$JAVA_HOME"; \ - tar --extract --file /tmp/jdk.tar.gz --directory "$JAVA_HOME" --strip-components 1 + tar --extract --file /tmp/jdk.tgz --directory "$JAVA_HOME" --strip-components 1 ## Get a fresh version of Oracle Linux 8 for the final image FROM oraclelinux:8 # Default to UTF-8 file.encoding ENV LANG en_US.UTF-8 - ENV JAVA_HOME=/usr/java/jdk-11 - ENV PATH $JAVA_HOME/bin:$PATH # Copy the uncompressed Java Runtime from the builder image COPY --from=builder $JAVA_HOME $JAVA_HOME RUN set -eux; \ + # Ensure we get the latest OL 8 updates available at build time dnf -y update; \ dnf install -y \ -# JDK assumes freetype is available - freetype fontconfig \ + # JDK assumes freetype is available + freetype fontconfig \ ; \ rm -rf /var/cache/dnf; \ ln -sfT "$JAVA_HOME" /usr/java/default; \ ln -sfT "$JAVA_HOME" /usr/java/latest; \ for bin in "$JAVA_HOME/bin/"*; do \ - base="$(basename "$bin")"; \ - [ ! -e "/usr/bin/$base" ]; \ - alternatives --install "/usr/bin/$base" "$base" "$bin" 20000; \ + base="$(basename "$bin")"; \ + [ ! -e "/usr/bin/$base" ]; \ + alternatives --install "/usr/bin/$base" "$base" "$bin" 20000; \ done; \ -# -Xshare:dump will create a CDS archive to improve startup in subsequent runs + # -Xshare:dump will create a CDS archive to improve startup in subsequent runs java -Xshare:dump; CMD ["jshell"] diff --git a/OracleJava/11/build.sh b/OracleJava/11/build.sh deleted file mode 100755 index 79b67c9745..0000000000 --- a/OracleJava/11/build.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh - -# Copyright (c) 2019, 2022 Oracle and/or its affiliates. -# -# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. - -if test "$1" = "8" -then - echo "Building Oracle JDK 11 on Oracle Linux 8" - docker build --file Dockerfile.ol8 --tag oracle/jdk:11-ol8 . -else - echo "Building Oracle JDK 11 on Oracle Linux 7 slim" - docker build --tag oracle/jdk:11-ol7 . -fi diff --git a/OracleJava/17/Dockerfile b/OracleJava/17/Dockerfile deleted file mode 100644 index 5bd6d697c1..0000000000 --- a/OracleJava/17/Dockerfile +++ /dev/null @@ -1,87 +0,0 @@ -# Copyright (c) 2020, 2024 Oracle and/or its affiliates. -# -# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. -# -# ORACLE DOCKERFILES PROJECT -# -------------------------- -# This is the Dockerfile for Oracle JDK 17 on Oracle Linux 8 -# -# REQUIRED FILES TO BUILD THIS IMAGE -# ---------------------------------- -# (1) jdk-17.XX_linux-x64_bin.tar.gz or jdk-17.XX_linux-aarch64_bin.tar.gz -# Download from https://www.oracle.com/java/technologies/downloads -# -# HOW TO BUILD THIS IMAGE -# ----------------------- -# Put all downloaded files in the same directory as this Dockerfile -# Run: -# $ docker build -t oracle/jdk:17 . -# -# This command is already scripted in build.sh so you can alternatively run -# $ bash build.sh -# -# The builder image will be used to uncompress the tar.gz file with the Java Runtime. - -FROM oraclelinux:8 as builder - -LABEL maintainer="Aurelio Garcia-Ribeyro " - -# Since the files are compressed as tar.gz first dnf install tar. gzip is already in oraclelinux:8 -RUN dnf install -y tar - -# Default to UTF-8 file.encoding -ENV LANG en_US.UTF-8 - -# Environment variables for the builder image. -# Required to validate that you are using the correct file - -ENV JAVA_HOME=/usr/java/jdk-17 - -## -COPY *.tar.gz /tmp/ -SHELL ["/bin/bash", "-o", "pipefail", "-c"] -RUN set -eux; \ - ARCH="$(uname -m)" && \ - if [ "$ARCH" = "x86_64" ]; \ - then \ - mv "$(ls /tmp/jdk-17*_linux-x64_bin.tar.gz)" /tmp/jdk.tar.gz ; \ - JAVA_SHA256=f7a6fdebeb11840e1f5314bc330feb75b67e52491cf39073dbf3e51e3889ff08 ; \ - else \ - mv "$(ls /tmp/jdk-17*_linux-aarch64_bin.tar.gz)" /tmp/jdk.tar.gz ; \ - JAVA_SHA256=277e0010e7b17583e63827f9537a153ea79cb4b6ca28d523cd8a82f14a24a769 ; \ - fi && \ - echo "$JAVA_SHA256 */tmp/jdk.tar.gz" | sha256sum -c -; \ - mkdir -p "$JAVA_HOME"; \ - tar --extract --file /tmp/jdk.tar.gz --directory "$JAVA_HOME" --strip-components 1 - -## Get a fresh version of Oracle Linux 8 for the final image -FROM oraclelinux:8 - -# Default to UTF-8 file.encoding -ENV LANG en_US.UTF-8 -ENV JAVA_HOME=/usr/java/jdk-17 -ENV PATH $JAVA_HOME/bin:$PATH - -# If you need the Java Version you can read it from the release file with -# JAVA_VERSION=$(sed -n '/^JAVA_VERSION="/{s///;s/"//;p;}' "$JAVA_HOME"/release); - -# Copy the uncompressed Java Runtime from the builder image -COPY --from=builder $JAVA_HOME $JAVA_HOME - -RUN set -eux; \ -# Ensure we get the latest OL 8 updates available at build time - dnf -y update; \ -# JDK assumes freetype is available - dnf install -y \ - freetype fontconfig \ - ; \ - rm -rf /var/cache/dnf; \ - ln -sfT "$JAVA_HOME" /usr/java/default; \ - ln -sfT "$JAVA_HOME" /usr/java/latest; \ - for bin in "$JAVA_HOME/bin/"*; do \ - base="$(basename "$bin")"; \ - [ ! -e "/usr/bin/$base" ]; \ - alternatives --install "/usr/bin/$base" "$base" "$bin" 20000; \ - done; - -CMD ["jshell"] diff --git a/OracleJava/17/Dockerfile.ol8 b/OracleJava/17/Dockerfile.ol8 new file mode 100644 index 0000000000..d9dd10be18 --- /dev/null +++ b/OracleJava/17/Dockerfile.ol8 @@ -0,0 +1,93 @@ +# Copyright (c) 2020, 2025 Oracle and/or its affiliates. +# +# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. +# +# ORACLE DOCKERFILES PROJECT +# -------------------------- +# This is the Dockerfile for Oracle JDK 17 on Oracle Linux 8 +# +# ARGS +# ---- +# This docker file requires two arguments: +# 1) JDK17_TOKEN is a valid dowload token for JDK 17. It can be created in cloud.oracle.com/jms under Java Download +# Token generation is documented on https://docs.cloud.oracle.com/en-us/iaas/jms/doc/java-download.html +# 2) OCI_REGION is the Oracle Cloud Infrastucture (OCI) region where the token is generated. +# +# REQUIRED FILES TO BUILD THIS IMAGE +# ---------------------------------- +# This dockerfile will download a copy of latest version of JDK 17 from +# https://javamanagementservice-download..oci.oraclecloud.com/java/17/latest/ +# +# It will use either x64 or aarch64 depending on the target platform +# +# HOW TO BUILD THIS IMAGE +# ----------------------- +# Run: +# $ docker build --file Dockerfile.ol8 --tag oracle/jdk:17 --build-arg JDK17_TOKEN= --build-arg OCI_REGION= . +# +# The builder image will be used to uncompress the tar.gz file with the Java Runtime. + +FROM oraclelinux:8 as builder +ARG JDK17_TOKEN +ARG OCI_REGION + +LABEL maintainer="Aurelio Garcia-Ribeyro " + +# Since the files are compressed as tar.gz first dnf install tar. +# gzip is already in oraclelinux:8 +RUN dnf install -y tar + +# Default to UTF-8 file.encoding +ENV LANG en_US.UTF-8 + +# Environment variables for the builder image. +# Required to validate that you are using the correct file + +ENV JAVA_URL=https://javamanagementservice-download."${OCI_REGION}".oci.oraclecloud.com/java/17/latest/ \ + JAVA_HOME=/usr/java/jdk-17 + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] +RUN set -eux; \ + ARCH="$(uname -m)" && \ + # Java uses just x64 in the name of the tarball + if [ "$ARCH" = "x86_64" ]; \ + then ARCH="x64"; \ + fi && \ + JAVA_PKG="$JAVA_URL"jdk-17_linux-"${ARCH}"_bin.tar.gz; \ + JAVA_SHA256="$(curl -L "$JAVA_PKG".sha256)" ; \ + curl -L --header token:${JDK17_TOKEN} --output /tmp/jdk.tgz "$JAVA_PKG" && \ + echo "$JAVA_SHA256" */tmp/jdk.tgz | sha256sum -c; \ + mkdir -p "$JAVA_HOME"; \ + tar --extract --file /tmp/jdk.tgz --directory "$JAVA_HOME" --strip-components 1 + +## Get a new image of Oracle Linux 8 for the final image +FROM oraclelinux:8 + +# Default to UTF-8 file.encoding +ENV LANG en_US.UTF-8 +ENV JAVA_HOME=/usr/java/jdk-17 +ENV PATH $JAVA_HOME/bin:$PATH + +# If you need the Java Version you can read it from the release file with +# JAVA_VERSION=$(sed -n '/^JAVA_VERSION="/{s///;s/"//;p;}' "$JAVA_HOME"/release); + +# Copy the uncompressed Java Runtime from the builder image +COPY --from=builder $JAVA_HOME $JAVA_HOME + +RUN set -eux; \ + # Ensure we get the latest OL 8 updates available at build time + dnf -y update; \ + # JDK assumes freetype is available + dnf install -y \ + freetype fontconfig \ + ; \ + rm -rf /var/cache/dnf; \ + ln -sfT "$JAVA_HOME" /usr/java/default; \ + ln -sfT "$JAVA_HOME" /usr/java/latest; \ + for bin in "$JAVA_HOME/bin/"*; do \ + base="$(basename "$bin")"; \ + [ ! -e "/usr/bin/$base" ]; \ + alternatives --install "/usr/bin/$base" "$base" "$bin" 20000; \ + done; + +CMD ["jshell"] \ No newline at end of file diff --git a/OracleJava/17/build.sh b/OracleJava/17/build.sh deleted file mode 100755 index 22f787c8b1..0000000000 --- a/OracleJava/17/build.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -# Copyright (c) 2021, 2022 Oracle and/or its affiliates. -# -# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. - -echo "Building Oracle JDK 17 on Oracle Linux 8" -docker build --file Dockerfile --tag oracle/jdk:17-ol8 . \ No newline at end of file diff --git a/OracleJava/21/Dockerfile b/OracleJava/21/Dockerfile.ol8 similarity index 97% rename from OracleJava/21/Dockerfile rename to OracleJava/21/Dockerfile.ol8 index 9d696cc5df..e66167cd84 100644 --- a/OracleJava/21/Dockerfile +++ b/OracleJava/21/Dockerfile.ol8 @@ -16,7 +16,7 @@ # HOW TO BUILD THIS IMAGE # ----------------------- # Run: -# $ docker build -t oracle/jdk:21 . +# $ docker build --file Dockerfile.ol8 --tag oracle/jdk:21 . # # This command is already scripted in build.sh so you can alternatively run # $ bash build.sh diff --git a/OracleJava/21/Dockerfile.ol9 b/OracleJava/21/Dockerfile.ol9 index bfd315c34e..e88d8e6bee 100644 --- a/OracleJava/21/Dockerfile.ol9 +++ b/OracleJava/21/Dockerfile.ol9 @@ -16,7 +16,7 @@ # HOW TO BUILD THIS IMAGE # ----------------------- # Run: -# $ docker build -t oracle/jdk:21 . +# $ docker build --file Dockerfile.ol9 --tag oracle/jdk:21 . # # This command is already scripted in build.sh so you can alternatively run # $ bash build.sh 9 diff --git a/OracleJava/21/build.sh b/OracleJava/21/build.sh index 2f99bf601f..fa5add9809 100755 --- a/OracleJava/21/build.sh +++ b/OracleJava/21/build.sh @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (c) 2023 Oracle and/or its affiliates. +# Copyright (c) 2023, 2025 Oracle and/or its affiliates. # # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. @@ -11,5 +11,5 @@ then docker build --file Dockerfile.ol9 --tag oracle/jdk:21-ol9 . else echo "Building Oracle JDK 21 on Oracle Linux 8" - docker build --file Dockerfile --tag oracle/jdk:21-ol8 . + docker build --file Dockerfile.ol8 --tag oracle/jdk:21-ol8 . fi \ No newline at end of file diff --git a/OracleJava/23/Dockerfile b/OracleJava/23/Dockerfile.ol9 similarity index 97% rename from OracleJava/23/Dockerfile rename to OracleJava/23/Dockerfile.ol9 index 32ce82a6b9..dc7f569b53 100644 --- a/OracleJava/23/Dockerfile +++ b/OracleJava/23/Dockerfile.ol9 @@ -16,7 +16,7 @@ # HOW TO BUILD THIS IMAGE # ----------------------- # Run: -# $ docker build -t oracle/jdk:23 . +# $ docker build --file Dockerfile.ol9 --tag oracle/jdk:23 . # # This command is already scripted in build.sh so you can alternatively run # $ bash build.sh diff --git a/OracleJava/23/build.sh b/OracleJava/23/build.sh index f77516a6e8..cdc14d3359 100755 --- a/OracleJava/23/build.sh +++ b/OracleJava/23/build.sh @@ -1,8 +1,8 @@ #!/bin/sh -# Copyright (c) 2024 Oracle and/or its affiliates. +# Copyright (c) 2024,2025 Oracle and/or its affiliates. # # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. echo "Building Oracle JDK 23 on Oracle Linux 9" -docker build --file Dockerfile --tag oracle/jdk:23-ol9 . \ No newline at end of file +docker build --file Dockerfile.ol9 --tag oracle/jdk:23-ol9 . \ No newline at end of file diff --git a/OracleJava/8/jdk/Dockerfile b/OracleJava/8/jdk/Dockerfile deleted file mode 100644 index 775468de32..0000000000 --- a/OracleJava/8/jdk/Dockerfile +++ /dev/null @@ -1,83 +0,0 @@ -# Copyright (c) 2024 Oracle and/or its affiliates. -# -# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. -# -# ORACLE DOCKERFILES PROJECT -# -------------------------- -# This is the Dockerfile for Oracle JDK 8 on Oracle Linux 7 -# -# REQUIRED FILES TO BUILD THIS IMAGE -# ---------------------------------- -# -# (1) jdk-8uXX-linux-x64.tar.gz or jdk-8uXX-linux-aarch64.tar.gz -# Download from https://www.oracle.com/java/technologies/downloads/#java8 -# -# HOW TO BUILD THIS IMAGE -# ----------------------- -# Put the downloaded file in the same directory as this Dockerfile -# Run: -# $ docker build -t oracle/jdk:8 . -# -# This command is already scripted in build.sh so you can alternatively run -# $ bash build.sh -# -# The builder image will be used to uncompress the tar.gz file with the Java Runtime. - -FROM oraclelinux:7-slim as builder - -LABEL maintainer="Aurelio Garcia-Ribeyro " - -# Since the files is compressed as tar.gz first yum install gzip and tar -RUN yum install -y gzip tar - -# Default to UTF-8 file.encoding -ENV LANG en_US.UTF-8 - -# Environment variables for the builder image. -# Required to validate that you are using the correct file - -ENV JAVA_HOME=/usr/java/jdk-8 - -COPY jdk-8u*.tar.gz /tmp/ -SHELL ["/bin/bash", "-o", "pipefail", "-c"] -RUN set -eux; \ - ARCH="$(uname -m)" && \ - if [ "$ARCH" = "x86_64" ]; \ - then \ - mv "$(ls /tmp/jdk-8*-linux-x64.tar.gz)" /tmp/jdk.tar.gz ; \ - JAVA_SHA256=b396978a716b7d23ccccabfe5c47c3b75d2434d7f8f7af690bc648172382720d ; \ - else \ - mv "$(ls /tmp/jdk-8*-linux-aarch64.tar.gz)" /tmp/jdk.tar.gz ; \ - JAVA_SHA256=e68d3e31ffcf7f05a4de65d04974843073bdff238bb6524adb272de9e616be7c ; \ - fi && \ - echo "$JAVA_SHA256 */tmp/jdk.tar.gz" | sha256sum -c -; \ - mkdir -p "$JAVA_HOME"; \ - tar --extract --file /tmp/jdk.tar.gz --directory "$JAVA_HOME" --strip-components 1 - -## Get a fresh version of Oracle Linux 7-slim for the final image -FROM oraclelinux:7-slim - -# Default to UTF-8 file.encoding -ENV LANG en_US.UTF-8 - -ENV JAVA_HOME=/usr/java/jdk-8 - -ENV PATH $JAVA_HOME/bin:$PATH - -# Copy the uncompressed Java Runtime from the builder image -COPY --from=builder $JAVA_HOME $JAVA_HOME - -## -RUN yum -y update; \ - rm -rf /var/cache/yum; \ - ln -sfT "$JAVA_HOME" /usr/java/default; \ - ln -sfT "$JAVA_HOME" /usr/java/latest; \ - for bin in "$JAVA_HOME/bin/"*; do \ - base="$(basename "$bin")"; \ - [ ! -e "/usr/bin/$base" ]; \ - alternatives --install "/usr/bin/$base" "$base" "$bin" 20000; \ - done; \ -# -Xshare:dump will create a CDS archive to improve startup in subsequent runs -# the file will be stored as /usr/java/jdk-8/jre/lib/amd64/server/classes.jsa -# See https://docs.oracle.com/javase/8/docs/technotes/guides/vm/class-data-sharing.html - java -Xshare:dump; diff --git a/OracleJava/8/jdk/Dockerfile.ol8 b/OracleJava/8/jdk/Dockerfile.ol8 index cb7857ee77..acad9a8243 100644 --- a/OracleJava/8/jdk/Dockerfile.ol8 +++ b/OracleJava/8/jdk/Dockerfile.ol8 @@ -1,4 +1,4 @@ -# Copyright (c) 2024 Oracle and/or its affiliates. +# Copyright (c) 2024, 2025 Oracle and/or its affiliates. # # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. # @@ -6,24 +6,30 @@ # -------------------------- # This is the Dockerfile for Oracle JDK 8 on Oracle Linux 8 # +# ARGS +# ---- +# This docker file requires two arguments: +# 1) JDK8_TOKEN is a valid dowload token for JDK 8. It can be created in cloud.oracle.com/jms under Java Download +# Token generation is documented on https://docs.cloud.oracle.com/en-us/iaas/jms/doc/java-download.html +# 2) OCI_REGION is the Oracle Cloud Infrastucture (OCI) region where the token is generated. +# # REQUIRED FILES TO BUILD THIS IMAGE # ---------------------------------- +# This dockerfile will download a copy of latest version of JDK 8 from +# https://javamanagementservice-download..oci.oraclecloud.com/java/8/latest/ # -# (1) jdk-8uXX-linux-x64.tar.gz or jdk-8uXX-linux-aarch64.tar.gz -# Download from https://www.oracle.com/java/technologies/downloads/#java8 +# It will use either x64 or aarch64 depending on the target platform # # HOW TO BUILD THIS IMAGE # ----------------------- -# Put the downloaded file in the same directory as this Dockerfile # Run: -# $ docker build -t oracle/jdk:8 . -# -# This command is already scripted in build.sh so you can alternatively run -# $ bash build.sh 8 +# $ docker build --file Dockerfile.ol8 --tag oracle/jdk:8 --build-arg JDK8_TOKEN= --build-arg OCI_REGION= . # # The builder image will be used to uncompress the tar.gz file with the Java Runtime. FROM oraclelinux:8 as builder +ARG JDK8_TOKEN +ARG OCI_REGION LABEL maintainer="Aurelio Garcia-Ribeyro " @@ -36,21 +42,21 @@ ENV LANG en_US.UTF-8 # Environment variables for the builder image. # Required to validate that you are using the correct file -ENV JAVA_HOME=/usr/java/jdk-8 +ENV JAVA_URL=https://javamanagementservice-download."${OCI_REGION}".oci.oraclecloud.com/java/8/latest/ \ + JAVA_HOME=/usr/java/jdk-8 -COPY jdk-8u*.tar.gz /tmp/ SHELL ["/bin/bash", "-o", "pipefail", "-c"] RUN set -eux; \ ARCH="$(uname -m)" && \ if [ "$ARCH" = "x86_64" ]; \ then \ - mv "$(ls /tmp/jdk-8*-linux-x64.tar.gz)" /tmp/jdk.tar.gz ; \ - JAVA_SHA256=b396978a716b7d23ccccabfe5c47c3b75d2434d7f8f7af690bc648172382720d ; \ + JAVA_PKG="$JAVA_URL"jdk-8_linux-x64_bin.tar.gz; \ else \ - mv "$(ls /tmp/jdk-8*-linux-aarch64.tar.gz)" /tmp/jdk.tar.gz ; \ - JAVA_SHA256=e68d3e31ffcf7f05a4de65d04974843073bdff238bb6524adb272de9e616be7c ; \ + JAVA_PKG="$JAVA_URL"jdk-8_linux-aarch64_bin.tar.gz; \ fi && \ - echo "$JAVA_SHA256 */tmp/jdk.tar.gz" | sha256sum -c -; \ + JAVA_SHA256="$(curl -L "$JAVA_PKG".sha256)" ; \ + curl -L --header token:${JDK8_TOKEN} --output /tmp/jdk.tar.gz "$JAVA_PKG" && \ + echo "$JAVA_SHA256" */tmp/jdk.tar.gz | sha256sum -c -; \ mkdir -p "$JAVA_HOME"; \ tar --extract --file /tmp/jdk.tar.gz --directory "$JAVA_HOME" --strip-components 1 @@ -60,9 +66,7 @@ FROM oraclelinux:8 # Default to UTF-8 file.encoding ENV LANG en_US.UTF-8 - ENV JAVA_HOME=/usr/java/jdk-8 - ENV PATH $JAVA_HOME/bin:$PATH # Copy the uncompressed Java Runtime from the builder image @@ -74,11 +78,11 @@ RUN dnf -y update; \ ln -sfT "$JAVA_HOME" /usr/java/default; \ ln -sfT "$JAVA_HOME" /usr/java/latest; \ for bin in "$JAVA_HOME/bin/"*; do \ - base="$(basename "$bin")"; \ - [ ! -e "/usr/bin/$base" ]; \ - alternatives --install "/usr/bin/$base" "$base" "$bin" 20000; \ + base="$(basename "$bin")"; \ + [ ! -e "/usr/bin/$base" ]; \ + alternatives --install "/usr/bin/$base" "$base" "$bin" 20000; \ done; \ -# -Xshare:dump will create a CDS archive to improve startup in subsequent runs -# the file will be stored as /usr/java/jdk-8/jre/lib/amd64/server/classes.jsa -# See https://docs.oracle.com/javase/8/docs/technotes/guides/vm/class-data-sharing.html - java -Xshare:dump; + # -Xshare:dump will create a CDS archive to improve startup in subsequent runs + # the file will be stored as /usr/java/jdk-8/jre/lib/amd64/server/classes.jsa + # See https://docs.oracle.com/javase/8/docs/technotes/guides/vm/class-data-sharing.html + java -Xshare:dump; \ No newline at end of file diff --git a/OracleJava/8/jdk/build.sh b/OracleJava/8/jdk/build.sh deleted file mode 100755 index 3bde78b7f4..0000000000 --- a/OracleJava/8/jdk/build.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh - -# Copyright (c) 2023 Oracle and/or its affiliates. -# -# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. - -if test "$1" = "8" -then - echo "Building Oracle JDK 8 on Oracle Linux 8" - docker build --file Dockerfile.ol8 --tag oracle/jdk:8-ol8 . -else - echo "Building Oracle JDK 8 on Oracle Linux 7 slim" - docker build --tag oracle/jdk:8-ol7 . -fi - diff --git a/OracleJava/8/serverjre/Dockerfile b/OracleJava/8/serverjre/Dockerfile deleted file mode 100644 index a85774ce43..0000000000 --- a/OracleJava/8/serverjre/Dockerfile +++ /dev/null @@ -1,76 +0,0 @@ -# Copyright (c) 2019, 2024 Oracle and/or its affiliates. -# -# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. -# -# ORACLE DOCKERFILES PROJECT -# -------------------------- -# This is the Dockerfile for Oracle Server JRE 8 -# -# REQUIRED FILES TO BUILD THIS IMAGE -# ---------------------------------- -# -# (1) server-jre-8uXX-linux-x64.tar.gz -# Download from https://www.oracle.com/java/technologies/downloads/ -# -# HOW TO BUILD THIS IMAGE -# ----------------------- -# Put the downloaded file in the same directory as this Dockerfile -# Run: -# $ docker build -t oracle/serverjre:8 . -# -# This command is already scripted in build.sh so you can alternatively run -# $ bash build.sh -# -# The builder image will be used to uncompress the tar.gz file with the Java Runtime. - -FROM oraclelinux:7-slim as builder - -LABEL maintainer="Aurelio Garcia-Ribeyro " - -# Since the files is compressed as tar.gz first yum install gzip and tar -RUN yum install -y gzip tar - -# Default to UTF-8 file.encoding -ENV LANG en_US.UTF-8 - -# Environment variables for the builder image. -# Required to validate that you are using the correct file - -ENV JAVA_HOME=/usr/java/jdk-8 - -COPY server-jre-8u*-linux-x64.tar.gz /tmp/jdk.tgz -SHELL ["/bin/bash", "-o", "pipefail", "-c"] -RUN set -eux; \ - JAVA_SHA256=7c9a3a87045c226647c09bc1eb1fc832f99a9105dbc924cfeab3bf16b3504d24 ; \ - echo "$JAVA_SHA256 */tmp/jdk.tgz" | sha256sum -c -; \ - mkdir -p "$JAVA_HOME"; \ - tar --extract --file /tmp/jdk.tgz --directory "$JAVA_HOME" --strip-components 1; - -## Get a fresh version of Oracle Linux 7-slim for the final image - -FROM oraclelinux:7-slim - -# Default to UTF-8 file.encoding -ENV LANG en_US.UTF-8 - -ENV JAVA_HOME=/usr/java/jdk-8 - -ENV PATH $JAVA_HOME/bin:$PATH - -# Copy the uncompressed Java Runtime from the builder image -COPY --from=builder $JAVA_HOME $JAVA_HOME - -## -RUN yum -y update; \ - rm -rf /var/cache/yum; \ - ln -sfT "$JAVA_HOME" /usr/java/default; \ - ln -sfT "$JAVA_HOME" /usr/java/latest; \ - for bin in "$JAVA_HOME/bin/"*; do \ - base="$(basename "$bin")"; \ - [ ! -e "/usr/bin/$base" ]; \ - alternatives --install "/usr/bin/$base" "$base" "$bin" 20000; \ - done; \ -# -Xshare:dump will create a CDS archive to improve startup in subsequent runs -# the file will be stored as /usr/java/jdk-8/jre/lib/amd64/server/classes.jsa -# See https://docs.oracle.com/javase/8/docs/technotes/guides/vm/class-data-sharing.html - java -Xshare:dump; diff --git a/OracleJava/8/serverjre/Dockerfile.ol8 b/OracleJava/8/serverjre/Dockerfile.ol8 index d63462a202..be22b67aa2 100644 --- a/OracleJava/8/serverjre/Dockerfile.ol8 +++ b/OracleJava/8/serverjre/Dockerfile.ol8 @@ -1,4 +1,4 @@ -# Copyright (c) 2019, 2024 Oracle and/or its affiliates. +# Copyright (c) 2019, 2025 Oracle and/or its affiliates. # # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. # @@ -6,24 +6,28 @@ # -------------------------- # This is the Dockerfile for Oracle Server JRE 8 on Oracle Linux 8 # +# ARGS +# ---- +# This docker file requires two arguments: +# 1) JDK8_TOKEN is a valid dowload token for Server JRE 8 (Create the token for JDK 8). It can be created in cloud.oracle.com/jms under Java Download +# Token generation is documented on https://docs.cloud.oracle.com/en-us/iaas/jms/doc/java-download.html +# 2) OCI_REGION is the Oracle Cloud Infrastucture (OCI) region where the token is generated. +# # REQUIRED FILES TO BUILD THIS IMAGE # ---------------------------------- -# -# (1) server-jre-8uXX-linux-x64.tar.gz -# Download from https://www.oracle.com/java/technologies/downloads/ +# This dockerfile will download a copy of latest version of JDK 8 from +# https://javamanagementservice-download..oci.oraclecloud.com/java/8/latest/ # # HOW TO BUILD THIS IMAGE # ----------------------- -# Put the downloaded file in the same directory as this Dockerfile # Run: -# $ docker build -t oracle/serverjre:8 . -# -# This command is already scripted in build.sh so you can alternatively run -# $ bash build.sh 8 +# $ docker build --file Dockerfile.ol8 --tag oracle/serverjre:8 --build-arg JDK8_TOKEN= --build-arg OCI_REGION= . # # The builder image will be used to uncompress the tar.gz file with the Java Runtime. FROM oraclelinux:8 as builder +ARG JDK8_TOKEN +ARG OCI_REGION LABEL maintainer="Aurelio Garcia-Ribeyro " @@ -36,15 +40,17 @@ ENV LANG en_US.UTF-8 # Environment variables for the builder image. # Required to validate that you are using the correct file -ENV JAVA_HOME=/usr/java/jdk-8 +ENV JAVA_URL=https://javamanagementservice-download."${OCI_REGION}".oci.oraclecloud.com/java/8/latest/ \ + JAVA_HOME=/usr/java/jdk-8 -COPY server-jre-8u*-linux-x64.tar.gz /tmp/jdk.tgz SHELL ["/bin/bash", "-o", "pipefail", "-c"] RUN set -eux; \ - JAVA_SHA256=7c9a3a87045c226647c09bc1eb1fc832f99a9105dbc924cfeab3bf16b3504d24 ; \ - echo "$JAVA_SHA256 */tmp/jdk.tgz" | sha256sum -c -; \ + JAVA_PKG="$JAVA_URL"server-jre-8_linux-x64_bin.tar.gz; \ + JAVA_SHA256="$(curl -L "$JAVA_PKG".sha256)" ; \ + curl -L --header token:${JDK8_TOKEN} --output /tmp/jdk.tgz "$JAVA_PKG" && \ + echo "$JAVA_SHA256" */tmp/jdk.tgz | sha256sum -c; \ mkdir -p "$JAVA_HOME"; \ - tar --extract --file /tmp/jdk.tgz --directory "$JAVA_HOME" --strip-components 1; + tar --extract --file /tmp/jdk.tgz --directory "$JAVA_HOME" --strip-components 1 ## Get a fresh version of Oracle Linux 8 for the final image @@ -52,9 +58,7 @@ FROM oraclelinux:8 # Default to UTF-8 file.encoding ENV LANG en_US.UTF-8 - ENV JAVA_HOME=/usr/java/jdk-8 - ENV PATH $JAVA_HOME/bin:$PATH # Copy the uncompressed Java Runtime from the builder image @@ -66,11 +70,11 @@ RUN dnf -y update; \ ln -sfT "$JAVA_HOME" /usr/java/default; \ ln -sfT "$JAVA_HOME" /usr/java/latest; \ for bin in "$JAVA_HOME/bin/"*; do \ - base="$(basename "$bin")"; \ - [ ! -e "/usr/bin/$base" ]; \ - alternatives --install "/usr/bin/$base" "$base" "$bin" 20000; \ + base="$(basename "$bin")"; \ + [ ! -e "/usr/bin/$base" ]; \ + alternatives --install "/usr/bin/$base" "$base" "$bin" 20000; \ done; \ -# -Xshare:dump will create a CDS archive to improve startup in subsequent runs -# the file will be stored as /usr/java/jdk-8/jre/lib/amd64/server/classes.jsa -# See https://docs.oracle.com/javase/8/docs/technotes/guides/vm/class-data-sharing.html - java -Xshare:dump; + # -Xshare:dump will create a CDS archive to improve startup in subsequent runs + # the file will be stored as /usr/java/jdk-8/jre/lib/amd64/server/classes.jsa + # See https://docs.oracle.com/javase/8/docs/technotes/guides/vm/class-data-sharing.html + java -Xshare:dump; \ No newline at end of file diff --git a/OracleJava/8/serverjre/build.sh b/OracleJava/8/serverjre/build.sh deleted file mode 100755 index 93d9b49913..0000000000 --- a/OracleJava/8/serverjre/build.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh - -# Copyright (c) 2019, 2022 Oracle and/or its affiliates. -# -# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. - -if test "$1" = "8" -then - echo "Building Oracle Server JRE 8 on Oracle Linux 8" - docker build --file Dockerfile.ol8 --tag oracle/serverjre:8-ol8 . -else - echo "Building Oracle Server JRE 8 on Oracle Linux 7 slim" - docker build --tag oracle/serverjre:8-ol7 . -fi - diff --git a/OracleJava/README.md b/OracleJava/README.md index f4efcba444..665b5d20ce 100644 --- a/OracleJava/README.md +++ b/OracleJava/README.md @@ -6,29 +6,32 @@ Oracle Java Server JRE provides the features from Oracle Java JDK commonly requi ## Building the Oracle Java base image -For JDK 23 and 21 the required JDK binaries will be downloaded from [Oracle](https://www.oracle.com/javadownload) as part of the build using curl. +For the most recent JDK Releases ( JDK 23 and 21), offered under the [Oracle No-Fee Terms and Conditions](https://www.java.com/freeuselicense) (NFTC), the required JDK binaries will be downloaded from [Oracle](https://www.oracle.com/javadownload) as part of the build using curl. -For JDK 17, JDK 11, and JDK 8 you must first download the linux x64 or linux aarch64 compressed archive (tar.gz), for Server JRE 8 you must download the linux x64 compressed archive, from [https://oracle.com/javadownload](https://www.oracle.com/javadownload) and place it in the same directory as the corresponding Dockerfile. +e.g., To build the JDK 23 container image run: -e.g. for JDK 17 download jdk-17[X]_linux-x64_bin.tar.gz into OracleJava/17, for Server JRE 8 download server-jre-8uXXX-linux-x64.tar.gz into OracleJava/8/serverjre +```bash +cd ../OracleJava/23 +docker build --file Dockerfile.ol9 --tag oracle/jdk:23 . +``` -To build the container image run `docker build`. Tag it with the correct version number. +Updates to prior LTS releases: JDK 17, JDK 11, JDK 8, and Server JRE 8 are offered under the [Oracle Technology Network License Agreement for Oracle Java SE](https://www.java.com/otnlicense). Users must accept the license terms, generate a download token, and provide it, as well as the OCI region for the token, as build arguments. Token generation is documented on [https://docs.cloud.oracle.com/en-us/iaas/jms/doc/java-download.html](https://docs.cloud.oracle.com/en-us/iaas/jms/doc/java-download.html). -e.g. For JDK 23 run +e.g., To build the JDK 17 container image generate a token for JDK 17 and run: ```bash -cd ../OracleJava/23 -docker build --tag oracle/jdk:23 . +cd ../OracleJava/17 +docker build --file Dockerfile.ol8 --tag oracle/jdk:17 --build-arg JDK17_TOKEN=<$token> --build-arg OCI_REGION=<$region> . ``` -for Server JRE 8 run +e.g., To build the Server JRE 8 container image generate a token for JDK 8 and run: ```bash cd ../OracleJava/8/serverjre -docker build --tag oracle/serverjre:8 . +docker build --file Dockerfile.ol8 --tag oracle/serverjre:8 --build-arg JDK8_TOKEN=<$token> --build-arg OCI_REGION=<$region> . ``` -The right command with the correct tag is already scripted in `build.sh` so you can alternatively run: +For the NFTC releases (JDK 23 and 21) the right command is already scripted in `build.sh` so you can alternatively run: ```bash bash build.sh @@ -38,36 +41,23 @@ bash build.sh The Oracle Java image for JDK 23 uses `oraclelinux:9` as the parent image. -The Oracle Java image for JDK 21 and 17 use `oraclelinux:8` as the parent image. - -JDK 21 allows for optionally building on `oraclelinux:9` by using `Dockerfile.9` rather than `Dockerfile`. - -The Oracle Java image for JDK 11, JDK 8, and Server JRE 8 use `oraclelinux:7-slim` as the parent image. +The Oracle Java image for JDK 21 and earlier use `oraclelinux:8` as the parent image. -JDK 11, JDK 8, and Server JRE 8 allow for optionally building on `oraclelinux:8` by using `Dockerfile.8` rather than `Dockerfile`. +JDK 21 allows for optionally building on `oraclelinux:9` by using `Dockerfile.ol9` rather than `Dockerfile.ol8`. -e.g. to build JDK 11 with Oracle Linux 8 rather than the default Oracle Linux 7 run +e.g. to build JDK 21 with Oracle Linux 9 rather than the default Oracle Linux 8 run ```bash -cd ../OracleJava/11 -docker build --file Dockerfile.8 --tag oracle/jdk:11-oraclelinux8 . +cd ../OracleJava/21 +docker build --file Dockerfile.ol9 --tag oracle/jdk:11-oraclelinux9 . ``` - -On JDK 11, JDK 8, and Server JRE 8 `build.sh` can be used to build on Oracle Linux 8, by passing `8`. -e.g. - -```bash -cd ../OracleJava/11 -bash build.sh 8 -``` - -The script `build.sh` will tag the images it creates with the JDK version, and with the operating system and OS version e.g., '17-ol8'. +Server JRE is offered only for x86-64 systems, all other images are offered for x86-64 as well as aarch64. ## Licenses JDK 23 and 21 are downloaded, as part of the build process, from the [Oracle Website](https://www.oracle.com/javadownload) under the [Oracle No-Fee Terms and Conditions (NFTC)](https://java.com/freeuselicense). -For building JDK 17, JDK 11, JDK 8, and Server JRE 8 you must first download the corresponding Java Runtime from the [Oracle Website](https://www.oracle.com/javadownload) and accept the license indicated on that page. +The JDK 17, JDK 11, JDK 8, and Server JRE 8 dockerfiles use Java Runtimes under the [Oracle Technology Network License Agreement for Oracle Java SE](https://www.java.com/otnlicense) All scripts and files hosted in this project and GitHub [`docker/OracleJava`](./) repository, required to build the container images are, unless otherwise noted, released under the [UPL 1.0](https://oss.oracle.com/licenses/upl/) license. diff --git a/OracleOpenJDK/23/Dockerfile b/OracleOpenJDK/23/Dockerfile.ol9 similarity index 96% rename from OracleOpenJDK/23/Dockerfile rename to OracleOpenJDK/23/Dockerfile.ol9 index a2b31472d2..c612b62e51 100644 --- a/OracleOpenJDK/23/Dockerfile +++ b/OracleOpenJDK/23/Dockerfile.ol9 @@ -15,7 +15,7 @@ # HOW TO BUILD THIS IMAGE # ----------------------- # Run: -# $ docker build -t oracle/openjdk:23 . +# $ docker build --file Dockerfile.ol9 --tag oracle/openjdk:23 . # # This command is already scripted in build.sh so you can alternatively run # $ bash build.sh diff --git a/OracleOpenJDK/23/build.sh b/OracleOpenJDK/23/build.sh index 7c6e711e35..4d75bf3c70 100755 --- a/OracleOpenJDK/23/build.sh +++ b/OracleOpenJDK/23/build.sh @@ -5,4 +5,4 @@ # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. echo "Building OpenJDK 23 on Oracle Linux 9" -docker build --file Dockerfile --tag oracle/openjdk:23-ol9 . +docker build --file Dockerfile.ol9 --tag oracle/openjdk:23-ol9 . diff --git a/OracleOpenJDK/README.md b/OracleOpenJDK/README.md index 02f94e9bc4..43939d569f 100644 --- a/OracleOpenJDK/README.md +++ b/OracleOpenJDK/README.md @@ -10,7 +10,7 @@ e.g. for OpenJDK 23 run ```bash cd ../OracleOpenJDK/23 -docker build -t oracle/openjdk:23 . +docker build --file Dockerfile.ol9 --tag oracle/openjdk:23 . ``` This command is already scripted in `build.sh` so you can alternatively run: