FROM node:20-bookworm-slim AS builder WORKDIR /app # Enable pnpm via corepack (allow non-matching packageManager) ENV COREPACK_ENABLE_STRICT=0 ENV PNPM_CONFIG_LINK_WORKSPACE_PACKAGES=true RUN corepack enable && corepack prepare pnpm@9.15.0 --activate # Copy everything first (workspaces need full structure) COPY . . # Install all dependencies RUN pnpm install --no-frozen-lockfile # Build shared package first RUN pnpm exec turbo run build --filter=@sauci/shared # Build admin app with env vars ARG VITE_SUPABASE_URL ARG VITE_SUPABASE_ANON_KEY 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_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 pnpm exec turbo run build --filter=@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;"]