####
# Build locally:
#   docker build -t nshmp-ws-static .
####

ARG BUILD_IMAGE=code.usgs.gov:5001/devops/images/usgs/java:11
ARG FROM_IMAGE=code.usgs.gov:5001/devops/images/usgs/java:11

FROM ${BUILD_IMAGE} as builder

# For GitLab CI/CD
ARG CI_PROJECT_URL=null
ARG CI_COMMIT_BRANCH=null

WORKDIR /app

COPY . .

USER root

RUN ./gradlew assemble

USER usgs-user

####
# Run service
####
FROM ${FROM_IMAGE}

# Which service to run: hazard or aashto
ENV SERVICE="hazard"
# Web service context path
ENV CONTEXT_PATH "/"
ENV JAVA_OPTS=""

# Path to the NetCDF file to use
ENV NETCDF_FILE ${SERVICE}-example.nc

WORKDIR /app

USER root

RUN mkdir /asset-output  \
    && chown -R usgs-user:usgs-user /app \
    && chown -R usgs-user:usgs-user /asset-output

USER usgs-user

COPY --from=builder /app/src/aashto/build/libs/aashto-all.jar aashto.jar
COPY --from=builder /app/src/aashto/src/main/resources/aashto-example.nc .

COPY --from=builder /app/src/hazard/build/libs/hazard-all.jar hazard.jar
COPY --from=builder /app/src/hazard/src/main/resources/hazard-example.nc .

ENTRYPOINT /usr/bin/java \
    ${JAVA_OPTS} \
    -jar \
    "${SERVICE}".jar \
    "-Dmicronaut.server.context-path=${CONTEXT_PATH}" \
    -netcdf=${NETCDF_FILE}

EXPOSE 8080