FROM node:20-alpine

WORKDIR /app

RUN apk add --no-cache tini curl

COPY package.json ./
RUN npm install --omit=dev && npm cache clean --force

COPY src ./src
COPY postgres ./postgres

ENV NODE_ENV=production
ENV HOST=0.0.0.0
ENV PORT=3000

EXPOSE 3000

USER node

ENTRYPOINT ["/sbin/tini", "--"]
CMD ["node", "src/server.js"]
