# Stage 1: build FROM node:20-alpine AS builder WORKDIR /app COPY package*.json ./ RUN npm ci --prefer-offline COPY . . ARG VITE_SUPABASE_URL ARG VITE_SUPABASE_ANON_KEY ARG VITE_TG_BOT_TOKEN ARG VITE_TG_CHAT_ID ARG VITE_VAPID_PUBLIC_KEY ENV VITE_SUPABASE_URL=$VITE_SUPABASE_URL ENV VITE_SUPABASE_ANON_KEY=$VITE_SUPABASE_ANON_KEY ENV VITE_TG_BOT_TOKEN=$VITE_TG_BOT_TOKEN ENV VITE_TG_CHAT_ID=$VITE_TG_CHAT_ID ENV VITE_VAPID_PUBLIC_KEY=$VITE_VAPID_PUBLIC_KEY RUN npm run build # Stage 2: serve with Caddy FROM caddy:2-alpine COPY --from=builder /app/dist /srv COPY Caddyfile /etc/caddy/Caddyfile