FROM node:20-alpine AS builder

WORKDIR /app

COPY apps/web/package.json apps/web/package-lock.json ./apps/web/

WORKDIR /app/apps/web

RUN npm ci

WORKDIR /app

COPY apps/web ./apps/web
COPY content ./content

WORKDIR /app/apps/web

RUN npm run build

FROM node:20-alpine AS runner

ENV NODE_ENV=production

WORKDIR /app

COPY --from=builder /app/apps/web/package.json /app/apps/web/package-lock.json ./apps/web/

WORKDIR /app/apps/web

RUN npm ci --omit=dev

WORKDIR /app

COPY --from=builder /app/apps ./apps
COPY --from=builder /app/content ./content

WORKDIR /app/apps/web

EXPOSE 3000

CMD ["npm", "run", "start", "--", "--hostname", "0.0.0.0", "--port", "3000"]
