ARG JAVA_VERSION=17
ARG MAVEN_VERSION=3.8.7

FROM alpine:3.16 as builder

ARG JAVA_VERSION

RUN apk --no-cache add sudo bash \
  && apk --no-cache add openjdk${JAVA_VERSION}

##########
# BUILD 1
##########
FROM builder AS build1

ARG MAVEN_VERSION
ARG JAVA_VERSION
ARG MAVEN_BASE_URL=https://dlcdn.apache.org/maven/maven-3/${MAVEN_VERSION}/binaries
ARG USER_HOME_DIR="/root"

RUN apk --no-cache add curl tar procps

RUN mkdir -p /usr/share/maven /usr/share/maven/ref \
    && echo "Downloading maven" \
    && curl -fsSL -o /tmp/apache-maven.tar.gz ${MAVEN_BASE_URL}/apache-maven-${MAVEN_VERSION}-bin.tar.gz \
    && echo "Unzipping maven" \
    && tar -xzf /tmp/apache-maven.tar.gz -C /usr/share/maven --strip-components=1 \
    && echo "Cleaning and setting links" \
    && rm -f /tmp/apache-maven.tar.gz \
    && ln -s /usr/share/maven/bin/mvn /usr/bin/mvn

ENV MAVEN_HOME /usr/share/maven
ENV MAVEN_CONFIG "$USER_HOME_DIR/.m2"
ENV JAVA_VER ${JAVA_VERSION}
ENV JAVA_HOME /usr/lib/jvm/java-${JAVA_VERSION}-openjdk

WORKDIR /app
COPY ./src ./src
COPY ./pom.xml ./pom.xml
RUN mvn -f ./pom.xml clean package

FROM builder as build2

ARG JAVA_VERSION

ENV JAVA_VER ${JAVA_VERSION}
ENV JAVA_HOME /usr/lib/jvm/java-${JAVA_VERSION}-openjdk

RUN ln -s /lib/libc.musl-aarch64.so.1 /lib/ld-linux-aarch64.so.2

WORKDIR /app
COPY --from=build /app/target/siren-*-All.jar /usr/local/lib/siren.jar
#COPY ./start.sh ./start.sh
#RUN chmod +x ./start.sh

ENTRYPOINT ["java", "-jar", "/usr/local/lib/siren.jar"]
#ENTRYPOINT ["/bin/sh", "-c", "./start.sh"]