FROM node:20-alpine AS deps
WORKDIR /src
COPY package*.json ./
RUN npm i --legacy-peer-deps

FROM node:20-alpine AS builder
WORKDIR /src

ARG NEXT_PUBLIC_KEYCLOAK_CLIENT_ID
ARG NEXT_PUBLIC_DEFAULT_EXCEL_VIEWER
ARG NEXT_PUBLIC_API_URL

ENV NEXT_PUBLIC_KEYCLOAK_CLIENT_ID=$NEXT_PUBLIC_KEYCLOAK_CLIENT_ID
ENV NEXT_PUBLIC_DEFAULT_EXCEL_VIEWER=$NEXT_PUBLIC_DEFAULT_EXCEL_VIEWER
ENV NEXT_PUBLIC_API_URL=$NEXT_PUBLIC_API_URL

COPY --from=deps /src/node_modules ./node_modules
COPY . .
RUN npm run build

FROM node:20-alpine AS runner
WORKDIR /src

ENV NODE_ENV=production

COPY --from=builder /src/.next/standalone ./
COPY --from=builder /src/.next/static ./.next/static

EXPOSE 3000

CMD ["node","server.js"]