# ── Stage 1: Build ──
FROM node:20-alpine AS builder

WORKDIR /app

COPY package*.json ./

RUN npm install

COPY . .

# Build args - truyền vào từ docker-compose
ARG VITE_API_URL=http://localhost:3000
ARG VITE_API_URL_IMAGE=http://localhost:3000
ARG VITE_SECRET_CRYPTO=123456
ARG VITE_CLIENT_ID=

# Vite đọc từ ENV lúc build
ENV VITE_API_URL=$VITE_API_URL
ENV VITE_API_URL_IMAGE=$VITE_API_URL_IMAGE
ENV VITE_SECRET_CRYPTO=$VITE_SECRET_CRYPTO
ENV VITE_CLIENT_ID=$VITE_CLIENT_ID

ENV NODE_OPTIONS="--max-old-space-size=2048"

RUN npm run build

# ── Stage 2: Serve dist bằng nginx ──
FROM nginx:alpine

# Copy thư mục dist từ stage build vào nginx
COPY --from=builder /app/dist /usr/share/nginx/html

# Config nginx để hỗ trợ React Router
COPY nginx.conf /etc/nginx/conf.d/default.conf

EXPOSE 80

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