Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Created a docker file to offer JDK 21 on OL9 as well as the existing one on OL 8. #2834

Merged
merged 1 commit into from
Jul 22, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
# $ docker build -t oracle/jdk:11 .
#
# This command is already scripted in build.sh so you can alternatively run
# $ bash build.sh
# $ bash build.sh 8
#
# The builder image will be used to uncompress the tar.gz file with the Java Runtime.

Expand Down
2 changes: 1 addition & 1 deletion OracleJava/11/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
if test "$1" = "8"
then
echo "Building Oracle JDK 11 on Oracle Linux 8"
docker build --file Dockerfile.8 --tag oracle/jdk:11-ol8 .
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 .
Expand Down
88 changes: 88 additions & 0 deletions OracleJava/21/Dockerfile.ol9
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# Copyright (c) 2022, 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 21 on Oracle Linux 9
#
# REQUIRED FILES TO BUILD THIS IMAGE
# ----------------------------------
# This dockerfile will download a copy of JDK 21 from
# https://download.oracle.com/java/21/latest/jdk-21_linux-<ARCH>_bin.tar.gz
#
# It will use either x64 or aarch64 depending on the target platform
#
# HOW TO BUILD THIS IMAGE
# -----------------------
# Run:
# $ docker build -t oracle/jdk:21 .
#
# This command is already scripted in build.sh so you can alternatively run
# $ bash build.sh 9
#
# The builder image will be used to uncompress the tar.gz file with the Java Runtime.

FROM oraclelinux:9 as builder

LABEL maintainer="Aurelio Garcia-Ribeyro <[email protected]>"

# Since the files are compressed as tar.gz first dnf install tar. gzip is already in oraclelinux:9
RUN set -eux; \
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://download.oracle.com/java/21/latest \
JAVA_HOME=/usr/java/jdk-21

##
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-21_linux-"${ARCH}"_bin.tar.gz ; \
JAVA_SHA256=$(curl "$JAVA_PKG".sha256) ; \
curl --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 fresh version of OL9 for the final image
FROM oraclelinux:9

# Default to UTF-8 file.encoding
ENV LANG en_US.UTF-8
ENV JAVA_HOME=/usr/java/jdk-21
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 9 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"]
11 changes: 9 additions & 2 deletions OracleJava/21/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,12 @@
#
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.

echo "Building Oracle JDK 21 on Oracle Linux 8"
docker build --file Dockerfile --tag oracle/jdk:21-ol8 .

if test "$1" = "9"
then
echo "Building Oracle JDK 21 on Oracle Linux 9"
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 .
fi
File renamed without changes.
2 changes: 1 addition & 1 deletion OracleJava/8/jdk/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
if test "$1" = "8"
then
echo "Building Oracle JDK 8 on Oracle Linux 8"
docker build --file Dockerfile.8 --tag oracle/jdk:8-ol8 .
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 .
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ RUN set -eux; \
mkdir -p "$JAVA_HOME"; \
tar --extract --file /tmp/jdk.tgz --directory "$JAVA_HOME" --strip-components 1;

## Get a fresh version of SLIM for the final image
## Get a fresh version of OL 8 for the final image

FROM oraclelinux:8

Expand Down
2 changes: 1 addition & 1 deletion OracleJava/8/serverjre/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
if test "$1" = "8"
then
echo "Building Oracle Server JRE 8 on Oracle Linux 8"
docker build --file Dockerfile.8 --tag oracle/serverjre:8-ol8 .
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 .
Expand Down