# syntax = docker/dockerfile:1

FROM node:20-alpine AS builder

WORKDIR /app

COPY package*.json ./
RUN --mount=type=cache,target=/root/.npm npm ci --prefer-offline

COPY nuxt.config.ts ./
COPY tsconfig.json ./
COPY . .

RUN npm run build

FROM node:20-alpine

WORKDIR /app

COPY --from=builder /app/.output ./output
COPY --from=builder /app/package*.json ./

RUN --mount=type=cache,target=/root/.npm npm install --only=production

EXPOSE 3000

CMD ["node", ".output/server/index.mjs"]
