-
Notifications
You must be signed in to change notification settings - Fork 5.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
created a docker file to offer JDK 21 on OL9 as well as the existing …
…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
1 parent
62b04da
commit fa24c6d
Showing
8 changed files
with
102 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters