FROM node:20-alpine AS development

WORKDIR /app

COPY package.json package-lock.json* ./

RUN npm install

CMD ["npm", "run", "dev", "--", "--host"]

FROM node:20-alpine AS build

WORKDIR /app

ARG VITE_BASE_PATH=/deckofcards/
ARG VITE_API_URL=/deckofcards/api

ENV VITE_BASE_PATH=$VITE_BASE_PATH
ENV VITE_API_URL=$VITE_API_URL

COPY package.json package-lock.json* ./

RUN npm ci

COPY . .

RUN npm run build

FROM nginx:1.27-alpine AS production

COPY nginx.conf /etc/nginx/conf.d/default.conf
COPY --from=build /app/dist /usr/share/nginx/html

EXPOSE 80

CMD ["nginx", "-g", "daemon off;"]
