FROM alpine AS base

RUN --mount=type=cache,target=/var/cache/apk apk add nodejs python3 npm build-base

FROM base AS builder

WORKDIR /app

COPY package*.json ./
RUN --mount=type=cache,target=/root/.npm,sharing=locked npm ci --include=dev

COPY . .
RUN npm run build

FROM base AS app

WORKDIR /app

COPY package*.json ./
COPY --from=builder /app/dist ./
RUN --mount=type=cache,target=/root/.npm,sharing=locked npm ci --include=prod
RUN apk del --purge build-base python3

CMD [ "npm", "start" ]
