FROM node:lts-slim

WORKDIR /app

COPY app/package.json ./

RUN npm install --omit=dev
RUN npm install pm2 -g

COPY app/ ./

ENV NODE_ENV=production

# Build without type checking, as we have removed the Typescript
# dev-dependencies above to save space in the final build
RUN npx tsc --noCheck

RUN chown -R node:node /app

USER node

HEALTHCHECK --interval=30s --start-period=10s --timeout=5s CMD node /app/healthcheck.js || exit 1

CMD ["pm2-runtime", "dist/index.js" ]