# syntax=docker/dockerfile:1

# --- Stage 1: build ---
FROM node:20-alpine AS build
WORKDIR /app
COPY package.json package-lock.json* ./
RUN npm ci || npm install
COPY . .
RUN npm run build

# --- Stage 2: serve ---
FROM nginx:alpine
COPY --from=build /app/dist /usr/share/nginx/html
# The image entrypoint runs envsubst over /etc/nginx/templates/*.template at
# startup. Only SPIN_BACKEND_URL is substituted so nginx's own $vars survive.
ENV NGINX_ENVSUBST_FILTER=SPIN_BACKEND_URL
COPY nginx.conf.template /etc/nginx/templates/default.conf.template
EXPOSE 8080
