Skip to content

Commit

Permalink
created a docker file to offer JDK 21 on OL9 as well as the existing …
Browse files Browse the repository at this point in the history
…one on OL 8. Renamed some of the old dockerfiles from Dockerfile.8 to Dockerfile.ol8 to make their purpose more clear; updated build.sh accordingly

Signed-off-by: Aurelio Garcia-Ribeyro <[email protected]>
  • Loading branch information
aureliogrb authored and Djelibeybi committed Jul 22, 2024
1 parent 62b04da commit fa24c6d
Show file tree
Hide file tree
Showing 8 changed files with 102 additions and 7 deletions.
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

0 comments on commit fa24c6d

Please sign in to comment.