# Build Image
FROM node:16.15-alpine AS builder

WORKDIR /opt/app

COPY package.json .
COPY package-lock.json .
COPY tsconfig.json .
COPY .npmrc .

RUN npm ci --ignore-scripts --no-progress

COPY src src

RUN npm run build
RUN npm prune --prod

# Runtime Image
FROM node:16.15-alpine

WORKDIR /opt/app

COPY --from=builder /opt/app/dist dist
COPY --from=builder /opt/app/node_modules node_modules
COPY --from=builder /opt/app/package.json package.json

ENV DM_PORT 80

EXPOSE 80

HEALTHCHECK --interval=30s --timeout=3s CMD curl --fail http://localhost:${PORT}/version.json

CMD npm start
