ARG REGISTRY_URL=docker.io/aprimediet ARG ALPINE_VERSION=3.21 FROM ${REGISTRY_URL}/alpine:${ALPINE_VERSION} LABEL maintainer=" aprimediet@gmail.com" ARG JAVA_VERSION=8 USER root WORKDIR /tmp # Set java environment ENV JAVA_HOME=/usr/local/share/jdk ENV PATH=${JAVA_HOME}/bin:$PATH # Default to UTF-8 file.encoding ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8' # Add nginx user and group RUN addgroup -g 10001 java && \ adduser -D -u 10001 -G java -s /sbin/nologin -h /app java # Install requirements RUN --mount=type=cache,target=/var/cache/apk \ apk add --update \ # java.lang.UnsatisfiedLinkError: libfontmanager.so: libfreetype.so.6: cannot open shared object file: No such file or directory # java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11FontManager # https://github.com/docker-library/openjdk/pull/235#issuecomment-424466077 fontconfig ttf-dejavu \ # gnupg required to verify the signature gnupg \ # utilities for keeping Alpine and OpenJDK CA certificates in sync # https://github.com/adoptium/containers/issues/293 ca-certificates p11-kit-trust \ # locales ensures proper character encoding and locale-specific behaviors using en_US.UTF-8 musl-locales musl-locales-lang \ tzdata \ # Contains `csplit` used for splitting multiple certificates in one file to multiple files, since keytool can # only import one at a time. coreutils \ # Needed to extract CN and generate aliases for certificates openssl; # Get amazon correto jdk flavor ADD https://corretto.aws/downloads/latest/amazon-corretto-${JAVA_VERSION}-x64-alpine-jdk.tar.gz ./ # Extract to JAVA_HOME RUN tar -xzvf ./amazon-corretto-${JAVA_VERSION}-x64-alpine-jdk.tar.gz -C /usr/local/share && \ mv /usr/local/share/amazon* /usr/local/share/jdk && \ rm -f ./amazon-corretto-${JAVA_VERSION}-x64-alpine-jdk.tar.gz && \ chown -R java:java /usr/local/share/jdk && \ rm -rf /var/cache/apk/* USER java WORKDIR /app CMD ["/usr/local/share/jdk/bin/java"]