FROM maven:alpine as builder

# speed up Maven JVM a bit
ENV MAVEN_OPTS="-XX:+TieredCompilation -XX:TieredStopAtLevel=1"

WORKDIR /usr/src/app/

# install maven dependency packages (keep in image)
COPY pom.xml /usr/src/app/
COPY checkstyle*.xml /usr/src/app/
RUN mvn -T 1C install && rm -rf target
COPY src /usr/src/app/src
RUN mkdir target
RUN mvn -T 1C package


FROM openjdk:11-jre

ARG REVISION
ARG BUILDTIME
LABEL REVISION=${REVISION}
LABEL BUILDTIME=${BUILDTIME}

COPY --from=builder /usr/src/app/target/lib /usr/share/bigtable-autoscaler/lib
COPY --from=builder /usr/src/app/target/bigtable-autoscaler.jar /usr/share/bigtable-autoscaler/bigtable-autoscaler.jar

COPY entrypoint.sh /app/entrypoint.sh

RUN addgroup sme --system --gid 1000 \
    && adduser sme --system --uid 1000 --gid 1000 --home /app \
    && apt-get update -y \
    && apt-get install -y nginx jq \
    && chown -R sme:sme /usr/share/bigtable-autoscaler \
    && usermod -G sme,adm sme

COPY entrypoint.sh /app/entrypoint.sh

RUN chown -R root:sme /etc/nginx/sites-available \
    && chmod g+rwx -R /etc/nginx/sites-available \
    && chown -R root:sme /etc/nginx/conf.d \
    && chmod g+rwx /etc/nginx/conf.d \
    && chown root:adm /usr/sbin/nginx \
    && chmod -x /usr/sbin/nginx \
    && chmod g+x /usr/sbin/nginx \
    && chmod +s /usr/sbin/nginx \
    && chmod +x /app/entrypoint.sh

ENV APP_USER=sme APP_GROUP=sme
ENV ROOT_USER=root ROOT_GROUP=root
ENV GOOGLE_APPLICATION_CREDENTIALS=/app/credentials.json

USER ${APP_USER}
ENTRYPOINT [ "entrypoint.sh"]
