FROM node:20-bookworm-slim AS builder WORKDIR /app # Copy the npm workspace and install from its committed lockfile. COPY . . RUN npm ci # Build shared package first RUN npm run build -w @sauci/shared # Build admin app with env vars ARG VITE_SUPABASE_URL ARG VITE_SUPABASE_ANON_KEY ARG VITE_API_URL ARG VITE_OPENAI_API_KEY ARG VITE_OPENROUTER_API_KEY ARG VITE_AI_MODEL ARG VITE_AI_MODEL_GENERATE ARG VITE_AI_MODEL_FIX ARG VITE_AI_MODEL_POLISH ARG VITE_COUNCIL_ENABLED ARG VITE_COUNCIL_GENERATOR_MODEL ARG VITE_COUNCIL_REVIEWER_MODEL ENV VITE_SUPABASE_URL=$VITE_SUPABASE_URL ENV VITE_SUPABASE_ANON_KEY=$VITE_SUPABASE_ANON_KEY ENV VITE_API_URL=$VITE_API_URL ENV VITE_OPENAI_API_KEY=$VITE_OPENAI_API_KEY ENV VITE_OPENROUTER_API_KEY=$VITE_OPENROUTER_API_KEY ENV VITE_AI_MODEL=$VITE_AI_MODEL ENV VITE_AI_MODEL_GENERATE=$VITE_AI_MODEL_GENERATE ENV VITE_AI_MODEL_FIX=$VITE_AI_MODEL_FIX ENV VITE_AI_MODEL_POLISH=$VITE_AI_MODEL_POLISH ENV VITE_COUNCIL_ENABLED=$VITE_COUNCIL_ENABLED ENV VITE_COUNCIL_GENERATOR_MODEL=$VITE_COUNCIL_GENERATOR_MODEL ENV VITE_COUNCIL_REVIEWER_MODEL=$VITE_COUNCIL_REVIEWER_MODEL RUN npm run build -w @sauci/admin FROM nginx:alpine COPY --from=builder /app/apps/admin/dist /usr/share/nginx/html COPY --from=builder /app/apps/admin/nginx.conf /etc/nginx/conf.d/default.conf EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]