# Build stage
FROM node:20-alpine AS builder

WORKDIR /app

# Build-time proxy (host SOCKS on 127.0.0.1:1081 — requires docker build --network=host)
ARG HTTP_PROXY
ARG HTTPS_PROXY
ARG ALL_PROXY
ENV HTTP_PROXY=$HTTP_PROXY \
    HTTPS_PROXY=$HTTPS_PROXY \
    ALL_PROXY=$ALL_PROXY \
    NODE_OPTIONS=--dns-result-order=ipv4first

COPY package*.json ./

RUN npm ci

COPY . .
RUN npm run build

# Production stage
FROM nginx:alpine

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

EXPOSE 80

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