FROM node:22 AS deps

WORKDIR /app
COPY ./package.json ./package-lock.json .
RUN npm ci --omit=dev

#####

FROM node:22 AS devdeps

WORKDIR /app
COPY ./package.json ./package-lock.json ./tsconfig.json .
RUN npm ci

#####

FROM node:22 AS build

WORKDIR /app
COPY . /app
COPY --from=devdeps /app/node_modules /app/node_modules
RUN npm run build

#####

FROM gcr.io/distroless/nodejs22-debian12
WORKDIR /app
COPY --from=build /app /app
COPY --from=deps /app/node_modules /app/node_modules

CMD ["dist/index.js"]
