FROM node:22-alpine AS deps

WORKDIR /app

COPY package.json package.json
COPY tsconfig.json tsconfig.json
RUN npm install

FROM node:22-alpine AS build

WORKDIR /app

COPY --from=deps /app/node_modules node_modules
COPY package.json package.json
COPY tsconfig.json tsconfig.json
COPY src src
RUN npm run build

FROM node:22-alpine AS runtime

WORKDIR /app

ENV NODE_ENV=production

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

COPY --from=build /app/dist dist

USER node

EXPOSE 4000

CMD ["npm", "run", "start"]
