# base image to build a JRE
FROM amazoncorretto:17.0.3-alpine as corretto-jdk

# required for strip-debug to work
RUN apk add --no-cache binutils

# Build small JRE image
RUN $JAVA_HOME/bin/jlink \
         --verbose \
         --add-modules ALL-MODULE-PATH \
         --strip-debug \
         --no-man-pages \
         --no-header-files \
         --compress=2 \
         --output /customjre

# main app image
FROM alpine:latest

ENV JAVA_HOME=/jre
ENV PATH="${JAVA_HOME}/bin:${PATH}"
ENV SPRING_CONFIG_ADDITIONAL_LOCATION "file:/data/config/"

# copy JRE from the base image
COPY --from=corretto-jdk /customjre $JAVA_HOME

# Add app user
ARG AUSER=appuser
ARG AGID=137
ENV USER=$AUSER
ENV GID=$AGID
ARG BUILD_NUMBER=

# Create docker group identical to host
RUN addgroup -g $GID -S docker
RUN adduser --no-create-home -u 1000 -G docker -D $USER

# Prepare environment.
# Create needed folders
RUN mkdir /data && \
    mkdir /data/config && \
    chown -R $USER /data

VOLUME /data

COPY --chown=1000:$GID target/dta-backend-$BUILD_NUMBER.jar app.jar

USER 1000:$GID

ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]