36 lines
No EOL
1.1 KiB
Text
36 lines
No EOL
1.1 KiB
Text
# Define build arguments
|
|
ARG JAVA_VERSION=21.0.6+7
|
|
|
|
FROM busybox:1.37.0 AS builder
|
|
|
|
# Set working directory
|
|
WORKDIR /build
|
|
|
|
# Define build arguments
|
|
ARG JAVA_VERSION
|
|
ARG JAVA_HOME=opt/java/openjdk
|
|
|
|
# Download and extract OpenJDK
|
|
RUN MAJOR=$(echo ${JAVA_VERSION} | cut -d'.' -f1) && \
|
|
VERSION_UNDERSCORE=$(echo ${JAVA_VERSION} | sed 's/+/_/') && \
|
|
wget -q https://github.com/adoptium/temurin${MAJOR}-binaries/releases/download/jdk-${JAVA_VERSION}/OpenJDK${MAJOR}U-jre_x64_linux_hotspot_${VERSION_UNDERSCORE}.tar.gz && \
|
|
mkdir -p $JAVA_HOME && \
|
|
tar xf OpenJDK${MAJOR}U-jre_x64_linux_hotspot_${VERSION_UNDERSCORE}.tar.gz -C $JAVA_HOME --strip-components 1 --no-same-owner && \
|
|
rm -rf $JAVA_HOME/legal OpenJDK${MAJOR}U-jre_x64_linux_hotspot_${VERSION_UNDERSCORE}.tar.gz
|
|
|
|
# Use a minimal base image
|
|
FROM base
|
|
|
|
# Define build arguments
|
|
ARG JAVA_VERSION
|
|
|
|
# Set environment variables
|
|
ENV JAVA_HOME=/opt/java/openjdk
|
|
ENV JAVA_VERSION=$JAVA_VERSION
|
|
ENV PATH=$JAVA_HOME/bin:$PATH
|
|
|
|
# Copy Java runtime from the builder stage
|
|
COPY --from=builder /build /
|
|
|
|
# Set the default command
|
|
ENTRYPOINT ["java"] |