# ── Stage 1: build ────────────────────────────────────────────────────────── FROM node:22-alpine AS builder WORKDIR /app COPY package*.json ./ RUN npm ci COPY . . # No VITE_FOOTBALL_API_KEY needed at build time — nginx handles auth RUN npm run build # ── Stage 2: serve ────────────────────────────────────────────────────────── FROM nginx:alpine # Copy built assets COPY --from=builder /app/dist /usr/share/nginx/html # Copy nginx template — the official nginx image runs envsubst on *.template # files at startup, producing /etc/nginx/conf.d/default.conf COPY nginx/default.conf.template /etc/nginx/templates/default.conf.template EXPOSE 80