59 lines
2.0 KiB
Docker
59 lines
2.0 KiB
Docker
ARG REGISTRY_URL=docker.io/aprimediet
|
|
ARG ALPINE_VERSION=3.21
|
|
|
|
FROM ${REGISTRY_URL}/alpine:${ALPINE_VERSION}
|
|
LABEL maintainer="<Muhamad Aditya Prima> 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"]
|