####
# Build locally:
#   docker build
#       --build-arg gitlab_token=<token>
#       -t nshmp-ws-static .
####

ARG BUILD_IMAGE=usgs/amazoncorretto:11
ARG FROM_IMAGE=usgs/amazoncorretto:11

FROM ${BUILD_IMAGE} as builder

# TODO: Token needed until nshmp-lib is public
ARG GITLAB_TOKEN=null
ARG CI_JOB_TOKEN=null
ARG CI_PROJECT_URL=null
ARG CI_COMMIT_BRANCH=null

WORKDIR /app

COPY . .

RUN ./gradlew assemble

####
# 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

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